适用于Windows的Systrace

Bry*_*yan 79 windows strace

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

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

djh*_*987 37

一些选择:

进程监视器

另外,请参阅有关Windows 7中内置工具的这篇文章:

核心OS工具

  • 我刚刚使用ProcessMonitor来找出进程挂起的原因 - 结果是它试图访问一个无法删除的文件......如果没有ProcMon,它永远都不会想到它 (3认同)
  • 我在Linux上使用strace并且遇到了这个问题,同时在Windows上寻找类似的工具来解决我与NANT的问题.我尝试过Process Monitor,将过滤器设置为仅包含Nant.exe并排除其他所有内容,还在我遇到问题时设置过滤器以进行注册访问,并快速找出我遇到的问题.我强烈推荐Process Monitor. (2认同)

Bru*_*nez 23

WinDbg的Logger.exe是最接近strace的:http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v = vs.85).aspx

编辑:还有windbg的重量:http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx

  • 但是,它更像是ltrace而不是strace,因为它捕获库调用而不是系统调用. (3认同)

Der*_*ing 13

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%,但在运行新代码时运行新的代码时要高得多),这可能适用于您的目的,也可能不适用.


Isa*_*ton 7

API监视器看起来非常有用.


小智 5

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

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

  • 谢谢,那真是太好了。我想这意味着我们距离在 Windows 上实现良好且实用的 strace 还有很长的路要走...... (2认同)