Domanda

Sto cercando di curiosare su un file di registro su cui sta scrivendo un'applicazione.

Ho collegato con successo createfile con la libreria detours di MSR, ma createfile non sembra mai essere chiamato con il file su cui sono interessato a curiosare.Ho anche provato ad agganciare openfile con gli stessi risultati.

Non sono un programmatore esperto di Windows/C++ (e nemmeno un programmatore esperto), quindi i miei primi due pensieri erano che l'applicazione chiama createfile prima di collegare le API o che esiste qualche altra API per creare file/ottenere handle per loro .

Modificare:Grazie per le due ottime risposte.Voterei a favore la risposta di codingthewheel poiché era informativa, ma non ho abbastanza rappresentante :(

È stato utile?

Soluzione

Puoi usare FileMon di Sysinternal. È un monitor eccellente che può dire esattamente quali sono le chiamate di sistema relative ai file fatto e quali sono i parametri.

Penso che questo approccio sia molto più semplice dell'aggancio delle chiamate API e molto meno invadente.

Altri suggerimenti

Ecco un link che potrebbe essere utile:

Monitoraggio file in stile guerriglia con C # e C ++

È possibile creare un file senza toccare l'API CreateFile, ma posso chiedere quale metodo di iniezione DLL stai usando ? Se stai usando qualcosa come Windows Hooks, la tua DLL non verrà installata fino a poco dopo l'inizializzazione dell'applicazione di destinazione e perderai le prime chiamate a CreateFile. Considerando che se stai usando qualcosa come DetourCreateProcessWithDll il tuo hook CreateFile può essere installato prima di eseguire qualsiasi codice di avvio dell'applicazione.

Nella mia esperienza il 99,9% dei file creati / aperti ha come risultato una chiamata a CreateFile, inclusi file aperti tramite librerie C e C ++, librerie di terze parti, ecc. Forse ci sono alcune funzioni DDK non documentate che non instradano attraverso CreateFile , ma per un tipico file di registro, ne dubito.

Process Monitor di sysinternals potrebbe essere di aiuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top