记录二进制文件的行为?
Posted
技术标签:
【中文标题】记录二进制文件的行为?【英文标题】:Logging the Behavior of a Binary? 【发布时间】:2011-09-27 04:43:56 【问题描述】:我想弄清楚当命令行标志被传递给 Windows 上的程序时,哪些指令被执行不同,我有已编译(和优化)的二进制文件,没有调试符号或任何类似的东西。我知道区别不会超过几条指令。
我将如何解决这个问题?是否有任何技术可以准确记录程序在特定时间段内执行的指令? (请注意,这不涉及任何系统调用,只是因为命令行标志而在循环中设置了一个标志。)
【问题讨论】:
【参考方案1】:您可以使用 AMD 的 CodeAnalyst 来执行此操作,使用基于指令的分析方法。它还有一个 API,你可以在你的应用程序中触发事件,这样你就可以监控特定区域。您也可以使用反汇编程序,据我了解,您使用“指令”一词来表示高级代码操作和低级机器代码(执行无法更改,只有编译器发出的代码可以更改执行高级操作)。
【讨论】:
谢谢!这看起来是一个非常棒的工具。但是,它通常不会捕获某些内容,因为大多数指令甚至都没有被采样。关于如何解决这个问题的任何想法(如果可能的话)? @Mehrdad:那么您可以尝试其他采样方法之一,例如基于时间的采样方法。 (应该有一个示例教程)。以上是关于记录二进制文件的行为?的主要内容,如果未能解决你的问题,请参考以下文章