Ich suche ein Windows-Äquivalent von Systrace oder zumindest strace . Ich kenne StraceNT , frage mich aber, ob es da draußen noch weitere Alternativen gibt. Insbesondere suche ich nach einer bestimmten Möglichkeit, Systemaufrufrichtlinien programmgesteuert durchzusetzen, obwohl dies nachträglich erfolgen kann, anstatt sie aktiv zu stoppen.
Gibt es derzeit einen guten Weg, dies zu tun?
Antworten:
Die Logger.exe von WinDbg ist am nächsten an der Straße: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v=vs.85).aspx
EDIT: Es gibt auch das Gewicht von windbg: http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx
quelle
Einige Optionen:
Prozessmonitor
Lesen Sie auch diesen Artikel über in Windows 7 integrierte Tools:
Core OS Tools
quelle
Das Dr. Gedächtnis ( Tool http://drmemory.org ) enthält ein Systemaufruf-Tracing-Tool namens drstrace, das alle von einer Zielanwendung getätigten Systemaufrufe zusammen mit ihren Argumenten auflistet: http://drmemory.org/strace_for_windows.html
Zum programmgesteuerten Durchsetzen von Systemaufrufrichtlinien können Sie dieselben zugrunde liegenden Engines wie drstrace verwenden: die DynamoRIO-Toolplattform ( http://dynamorio.org ) und die DrSyscall-Bibliothek zur Überwachung von Systemaufrufen ( http://drmemory.org/docs/page_drsyscall). html ). Diese verwenden eine dynamische binäre Übersetzungstechnologie, die einen gewissen Overhead verursacht (20% -30% im eingeschwungenen Zustand, aber viel höher, wenn neuer Code ausgeführt wird, z. B. das Starten einer großen Desktop-App), der für Ihre Zwecke geeignet sein kann oder nicht.
quelle
API Monitor sieht für diesen Zweck sehr nützlich aus.
quelle
Hier ist ein ziemlich interessanter Artikel. Ich weiß nicht, ob er das gesuchte Ziel erreicht, aber ich denke, Sie werden ihn möglicherweise in die gewünschte Richtung führen.
http://jbremer.org/intercepting-system-calls-on-x86_64-windows/
quelle
strace ist bei Cygwin im Cygwin-Paket erhältlich . Sie können es beispielsweise von einem Cygwin-Spiegel herunterladen :
strace ist eines der wenigen Cygwin-Programme, das nicht auf der Cygwin-DLL basiert. Sie sollten also in der Lage sein, einfach dorthin zu kopieren
strace.exe
, wo Sie möchten, und es zu verwenden.quelle
strace notepad
. Es startet den Editor, erfasst jedoch keine Systemaufrufe.Es gibt verschiedene Tools, die alle auf Xperf basieren. Es ist ziemlich komplex, aber sehr leistungsfähig - siehe die Kurzanleitung . Es gibt andere nützliche Ressourcen auf der Windows - Performance - Analyse Seite
quelle
strace unterstützt von Git , als Michael Fox Erwähnung Vielleicht nicht nützlich für komplexe / Windows-Software.
quelle
Sie können den von Mark Russinovich geschriebenen Prozessmonitor verwenden. Dies ist eine fantastische kleine Anwendung, mit der Sie eine Verbindung zu jedem laufenden Prozess auf dem System herstellen und alle Systemaufrufe anzeigen können, die dieser Prozess derzeit ausführt.
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx
quelle