2008-08-17 4 views
5

Ich versuche, in einer Protokolldatei zu suchen, in die eine Anwendung schreibt.Irgendwelche Windows-API, um Datei-Handles neben createfile und openfile zu bekommen?

Ich habe erfolgreich Hakencreatefile mit der Umweg Bibliothek von MSR, aber Create scheint nie mit Datei aufgerufen werden, ich bin interessiert an Snooping auf. Ich habe auch versucht, Openfile mit den gleichen Ergebnissen zu hooken.

Ich bin kein erfahrener Windows/C++ Programmierer (oder sogar ein erfahrener Programmierer), also meine ersten zwei Gedanken waren entweder, dass die Anwendung createfile aufruft, bevor ich die API hake, oder dass es eine andere API zum Erstellen von Dateien gibt/Griffe für sie erhalten.

Edit: Danke für die beiden großen replys. Ich würde codingthewheel Antwort upvote da sie informativ war, aber ich habe nicht genug rep :(

Antwort

8

können Sie Sysinternal die Verwendung FileMon. Es ist ein ausgezeichneter Monitor, der Ihnen genau sagen kann, welche Datei bezogene Systemaufrufe gemacht werden und welche Parameter sind.

Ich denke, dass dieser Ansatz viel einfacher ist, als API-Aufrufe und viel weniger aufdringlich.

+0

Filemon, und seine Schwester-Anwendung Regmon sind großartige Sachen –

+1

FileMon wurde von ProcMon (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) ersetzt –

6

Hier ist ein Link, der von Nutzen sein könnte:

Guerilla-Style File Monitoring with C# and C++

Es ist möglich, eine Datei zu erstellen, ohne berühre CreateFile API aber kann ich fragen, welche DLL-Injektionsmethode Sie verwenden? Wenn Sie etwas wie Windows Hooks verwenden, wird Ihre DLL nicht installiert, bis die Zielanwendung initialisiert wird und Sie frühe Aufrufe von CreateFile verpassen Wenn Sie etwas wie DetourCreateProcessWithDll verwenden, können Sie den CreateFile-Hook vor jedem beliebigen Punkt installieren Startup-Code läuft.

Nach meiner Erfahrung führen 99,9% der erstellten/geöffneten Dateien zu einem Aufruf von CreateFile, einschließlich Dateien, die durch C- und C++ - Bibliotheken, Drittanbieter-Bibliotheken usw. geöffnet werden. Möglicherweise gibt es einige nicht dokumentierte DDK-Funktionen, die nicht routingfähig sind CreateFile, aber für eine typische Protokolldatei bezweifle ich es.

Verwandte Themen