Systraceまたは少なくともstraceに相当するWindowsを探しています。私はStraceNTを知って いますが、他に選択肢があるかどうか疑問に思っています。具体的には、システムコールポリシーをプログラムで適用する特定の方法を探していますが、これは積極的に停止するのではなく、事後に行うことができます。
現在これを行う良い方法はありますか?
回答:
WinDbgのLogger.exeはstraceに最も近いものです:http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v = vs.85).aspx
編集:windbgのwtもあります:http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx
Dr. Memory(http://drmemory.org)ツールには、drstraceと呼ばれるシステムコールトレースツールが付属しています。このツールは、ターゲットアプリケーションによって行われたすべてのシステムコールとその引数を一覧表示します。http://drmemory.org/strace_for_windows.html
プログラムでシステムコールポリシーを適用するには、drstraceと同じ基盤となるエンジンを使用できます。DynamoRIOツールプラットフォーム(http://dynamorio.org)とDrSyscallシステムコール監視ライブラリ(http://drmemory.org/docs/page_drsyscall)です。 html)。これらは動的バイナリ変換テクノロジーを使用しており、オーバーヘッドが発生します(定常状態では20%〜30%ですが、大きなデスクトップアプリの起動などの新しいコードを実行するとはるかに高くなります)。これは目的に適している場合とそうでない場合があります。
これはかなり興味深い記事です。あなたが探しているターゲットにヒットするかどうかはわかりませんが、あなたが望む方向にあなたを導くことができると思います。
http://jbremer.org/intercepting-system-calls-on-x86_64-windows/
straceは、cygwinパッケージのCygwinから入手できます。Cygwinミラーからダウンロードできます。例:
http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz
# | | | |
# +-----------+----------+ +--+--+
# | |
# mirror version
straceはCygwinDLLに依存しない数少ないCygwinプログラムの1つであるため、必要なstrace.exe
場所にコピーして使用できるはずです。
strace notepad
。メモ帳を起動しますが、システムコールはキャプチャしません。
Xperfを中心に構築されたツールがいくつかあります。かなり複雑ですが、非常に強力です。クイックスタートガイドを参照してください。Windowsパフォーマンス分析ページには他にも役立つリソースがあります
Michael FoxMentionが複雑な/ Windowsソフトウェアには役に立たない可能性があるため、straceはGitによってサポートされています。
MarkRussinovichによって作成されたプロセスモニターを使用できます。これは、システム上で実行中のプロセスに接続して、そのプロセスが現在行っているすべてのシステムコールを確認できる、すばらしい小さなアプリケーションです。
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx