2012-03-30 8 views
3

protokollieren Ich muss die DeviceIoControl() - Systemaufrufe einer Anwendung erfassen. Unter Linux kann strace zur Analyse aller ioctl-Aufrufe verwendet werden. Gibt es ähnliche Funktionen unter Windows?Wie die Aufrufe von DeviceIoControl eines Programms unter Windows

Die MSDN-Website empfiehlt ein Programm namens "Process Monitor", um die Echtzeitaktivitäten von ausführbaren Dateien zu analysieren. "Process Monitor" zeigt jedoch nichts über DeviceIoControl-Aufrufe an.

Antwort

3

Haben Sie OSR IRPTracker probiert?

IrpTracker können Sie alle E/A-Anforderungspakete (IRPs) auf einem System ohne die Verwendung irgendwelcher Filtertreiber und ohne Verweise auf alle Geräteobjekte überwachen, völlig ungestört die PnP-System zu verlassen. Zusätzlich zum Anzeigen des Pfads, den der IRP den Treiberstapel und seinen endgültigen Beendigungsstatus entfernt, ist eine detaillierte Ansicht verfügbar, die es Ihnen ermöglicht, den gesamten Inhalt des statischen Teils des IRP und eine interpretierte Ansicht des aktuellen und des vorherigen zu sehen Stapelspeicherorte.

3

Um die Funktion DeviceIoControl() zu erfassen, können Sie einen API-Hook verwenden. Meine Firma bietet Deviare, eine Hook-Engine mit einer High-Level-Schnittstelle. Sie müssen nicht viel über das Anhaken wissen, es kann frei verwendet werden (zeigen Sie einfach einen Dialog an, der unregistrierte Version sagt). Es enthält eine Hook-Konsole mit Quellcode.

1

Vor kurzem entdeckte Rohitab der API Monitor Es wurde seit 2 Jahren nicht aktualisiert, aber es funktioniert auf meinem Win7 x64. Es hat sehr gute API-Filterfunktionen.