适用于Windows的Systrace

时间:2010-10-02 22:21:50

标签: windows strace

我正在寻找相当于Systrace或至少strace的Windows。我知道 StraceNT,但想知道是否还有其他选择。具体来说,我正在寻找一种以编程方式强制执行系统调用策略的特定方法,尽管这可以在事实之后而不是主动停止它们。

目前有一个很好的方法吗?

9 个答案:

答案 0 :(得分:36)

一些选择:

Process Monitor

另外,请参阅此文章,了解Windows 7中内置的工具:

Core OS Tools

答案 1 :(得分:21)

答案 2 :(得分:12)

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%,但在运行新代码时会更高,例如启动大型桌面应用程序),这可能适用于您的目的,也可能不适合。 / p>

答案 3 :(得分:7)

API Monitor看起来非常有用。

答案 4 :(得分:5)

这是一篇非常有趣的文章,我不知道它是否会达到您正在寻找的目标,但我认为您可能会发现它会引导您朝着您想要的方向前进。

http://jbremer.org/intercepting-system-calls-on-x86_64-windows/

答案 5 :(得分:3)

strace可以从link的Cygwin获得。你可以下载它 来自cygwin package,例如:

Handler

strace是少数几个不依赖Cygwin DLL的Cygwin程序之一, 所以你应该可以将http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz # | | | | # +-----------+----------+ +--+--+ # | | # mirror version 复制到你想要的地方并使用它。

答案 6 :(得分:1)

有几种工具都是围绕Xperf构建的。它相当复杂但非常强大 - 请参阅quick start guideWindows Performance Analysis页面上还有其他有用的资源

答案 7 :(得分:1)

您可以使用Mark Russinovich编写的过程监视器。这是一个非常棒的小应用程序,它允许您连接到系统上的任何正在运行的进程,并查看该进程当前正在进行的所有系统调用。

https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx

答案 8 :(得分:0)

straceGit支持,因为Michael Fox Mention可能不适用于复杂的Windows软件。