Mein Ziel ist es, beim Ausführen eines Befehls genau zu bestimmen, welche Dateien es liest und schreibt. In Linux kann ich das mit ptrace machen (mit der Arbeit, ähnlich wie strace) und bei freebsd und MacOS kann ich das mit dem ktrace-Systembefehl machen. Was würden Sie verwenden, um diese Informationen in Windows zu erhalten?In Windows, wie kann ich in C verfolgen, welche Dateien ein Kindprozess liest und schreibt?
Meine bisherigen Untersuchungen legen nahe, dass ich entweder die Debugger-Schnittstelle (ähnlich wie ptrace in vielerlei Hinsicht) oder vielleicht ETW verwende. Eine dritte Alternative besteht darin, eine DLL einzufügen, um Systemaufrufe während ihrer Herstellung abzufangen. Leider habe ich nicht die Erfahrung zu erraten, wie schwierig jeder dieser Ansätze sein wird.
Irgendwelche Vorschläge?
Wahrscheinlich ist es ausreichend, w Mit einem GUI-Tool? Versuchen Sie Windows Internals (filemon). – harper
Wie wäre es mit Ressourcenmonitor in Windows 7 oder Process Explorer – GingerJack
Nein, ein GUI-Tool ist nicht ausreichend, ich muss in der Lage sein, dies von meinem Programm zu tun, das in C geschrieben ist (könnte aber C++ verwenden, falls erforderlich). –