Gibt es Windows-APIs, um Dateihandles außer „createfile“ und „openfile“ zu erhalten?

StackOverflow https://stackoverflow.com/questions/13806

  •  08-06-2019
  •  | 
  •  

Frage

Ich versuche, eine Protokolldatei auszuspionieren, in die eine Anwendung schreibt.

Ich habe createfile erfolgreich mit der Detours-Bibliothek von MSR verbunden, aber createfile scheint nie mit der Datei aufgerufen zu werden, die ich ausspionieren möchte.Ich habe auch versucht, OpenFile einzubinden, mit den gleichen Ergebnissen.

Ich bin kein erfahrener Windows/C++-Programmierer (oder sogar ein erfahrener Programmierer), daher waren meine ersten beiden Gedanken entweder, dass die Anwendung createfile aufruft, bevor ich die API einhänge, oder dass es eine andere API zum Erstellen von Dateien/Erhalten von Handles dafür gibt .

Bearbeiten:Danke für die beiden tollen Antworten.Ich würde die Antwort von „codingthewheel“ positiv bewerten, da sie informativ war, aber ich habe nicht genug Repräsentanten :(

War es hilfreich?

Lösung

Sie können Sysinternals verwenden FileMon.Es ist ein ausgezeichneter Monitor, der Ihnen genau mitteilen kann, welche systembezogenen Systemanrufe getätigt werden und welche Parameter sind.

Ich denke, dass dieser Ansatz viel einfacher ist als das Einbinden von API-Aufrufen und viel weniger aufdringlich.

Andere Tipps

Hier ist ein Link, der nützlich sein könnte:

Dateiüberwachung im Guerilla-Stil mit C# und C++

Es ist möglich, eine Datei zu erstellen, ohne die CreateFile-API zu berühren, aber kann ich fragen? welche DLL-Injection-Methode Sie verwenden?Wenn Sie so etwas wie Windows-Hooks verwenden, wird Ihre DLL erst einige Zeit nach der Initialisierung der Zielanwendung installiert und Sie verpassen frühe Aufrufe von CreateFile.Wenn Sie dagegen etwas wie DetourCreateProcessWithDll verwenden, kann Ihr CreateFile-Hook installiert werden, bevor der Startcode der Anwendung ausgeführt wird.

Nach meiner Erfahrung führen 99,9 % der erstellten/geöffneten Dateien zu einem Aufruf von CreateFile, einschließlich Dateien, die über C- und C++-Bibliotheken, Bibliotheken von Drittanbietern usw. geöffnet wurden.Vielleicht gibt es einige undokumentierte DDK-Funktionen, die nicht über CreateFile weitergeleitet werden, aber bei einer typischen Protokolldatei bezweifle ich das.

Prozessmonitor von sysinternals könnte auch helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top