Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> hardware >> Servers >> .

Dove trovare il punto di ingresso del server del registro DLL?

Il punto di ingresso del server del registro DLL non viene trovato in una posizione specifica all'interno della DLL stessa come una funzione denominata. Invece, è implicitamente definito dall'esportazione della DLL di una particolare funzione *con un nome specifico *. Il sistema operativo (in particolare, l'utilità `RegSvr32.exe) cerca questa funzione in base al suo nome, non cercando attraverso la struttura interna della DLL.

Il nome del punto di iscrizione è sempre: `dllregisterverver` .

Pertanto, per scoprire dove è *definito *il punto di ingresso del server DLL ", è necessario:

1. Esamina la tabella di esportazione della DLL: Strumenti come Dependency Walker (dipendono da spettatori DLL simili possono mostrarti un elenco di funzioni esportate da una DLL. Cerca `dllregisterServer` in quell'elenco. Se è presente, lo strumento potrebbe anche mostrarti il ​​suo indirizzo di memoria all'interno della DLL. Tuttavia, semplicemente trovare il nome non ti dà la posizione del codice sorgente.

2. Esamina il codice sorgente della DLL (se lo hai): Se hai il codice sorgente per la DLL, troverai la funzione `DllregisterServer" direttamente nei file di origine. Sarà una funzione dichiarata come:

`` `C ++

Stdapi dllregisterserver (void);

`` `

(o una dichiarazione simile a seconda della lingua utilizzata). Il compilatore gestirà quindi la sua esportazione nella tabella di esportazione della DLL.

Nota importante: La funzione `dllregisterServer` è * solo * presente in DLLS progettata per essere registrata con il sistema. Molte DLL non hanno bisogno di registrazione e quindi non contengono questa funzione. Il tentativo di registrare una DLL che non ha questa funzione comporterà un errore.

 

hardware © www.354353.com