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%ですが、大きなデスクトップアプリの起動などの新しいコードを実行するとはるかに高くなります)。
API Monitor は、この目的に非常に役立ちます。
これはかなり興味深い記事です。探しているターゲットにヒットするかどうかはわかりませんが、あなたが望む方向にあなたを導く可能性があると思います。
http://jbremer.org/intercepting-system-calls-on-x86_64-windows/
straceは、Cygwinから cygwinパッケージ で入手できます。 Cygwin mirror からダウンロードできます。例:
http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz
# | | | |
# +-----------+----------+ +--+--+
# | |
# mirror version
straceは、Cygwin DLLに依存しない数少ないCygwinプログラムの1つです。そのため、strace.exe
好きな場所に置いて使用します。
Xperfを中心に構築されたいくつかのツールがあります。かなり複雑ですが、非常に強力です- クイックスタートガイド を参照してください。 Windows Performance Analysis ページには他の有用なリソースがあります
Mark Russinovichが作成したプロセスモニターを使用できます。これは、システム上で実行中のプロセスにアタッチして、そのプロセスが現在行っているすべてのシステムコールを確認できる、素晴らしい小さなアプリケーションです。
https://technet.Microsoft.com/en-us/sysinternals/processmonitor.aspx