有人告诉我IDA Pro等工具是静态反汇编工具,
和OllyDbg等工具是动态反汇编工具。

但是从这些工具的使用经验来看,我不认为
是反汇编过程中工具之间的区别。

基本上您要做的就是将二进制文件加载到IDA或OllyDbg中,它们将使用某些递归反汇编算法进行反汇编
二进制文件并提供输出。

我错了吗?那么静态反汇编
和动态反汇编有什么区别??

谢谢!

评论

您不是在说“静态分析”还是“动态分析”吗?

而且,甚至有标记Wiki的静态分析和动态分析,可能有也可能没有额外的信息,这取决于是否有人坐下来做。

#1 楼

你在这里混了。没有动态反汇编和静态反汇编,而是动态


动态程序分析是对计算机软件的分析,该软件是通过在真实或虚拟处理器上执行程序来执行的。 />

和二进制静态分析。


静态程序分析是对没有实际执行程序的情况下执行的计算机软件的分析。有时会产生不同的结果,主要是来自结合了反拆卸技术的二进制文件。

评论


是的,我想我以前犯过错误,现在我知道了,非常感谢!

– lllllllllllll
2014年1月18日15:32

#2 楼

我实际上不认为有任何混淆。实际上,存在两种拆卸技术:静态和动态。此处提供的定义来自有关代码混淆的2003年出版物:http://www.cs.arizona.edu/solar/papers/CCS2003.pdf


静态反汇编是文件所在的位置在反汇编过程中不会执行反汇编。
动态反汇编是在某些输入上执行文件,并且外部工具(调试器等)正在监视执行情况,以识别正在执行的指令。已执行。

此链接(http://www.maqao.org/publications/madras_techreport.pdf)涵盖了一些反汇编程序和二进制工具使用的技术。尽管它并不详尽,并且不能直接回答您的问题,但是您会找到更多要检查的参考。

关于动态和静态二进制分析,这两种技术主要用于分析应用程序。目的是获取有关热点,内存访问模式等信息。...


静态分析通常基于对程序的分析,而无需执行它。从我的角度来看,有关静态程序分析的Wikipedia页面虽然不完整,但仍是不错的读物。涉及执行程序,并且需要对基本块(例如循环,函数等)进行检测。检测包括在基本块的入口和出口插入探针,这些探针将根据某个度量(CPU周期, µs,...)。分析后收集的信息通常用于通过以合适的展开因子执行循环展开以及可能的情况下的矢量化(SSE,AVX,Altivec等)来优化应用程序。

许多工具都执行后一种技术:英特尔的VTune,MAQAO,DynInst,gprof,... ,它在源代码级别进行检测,并执行静态和动态分析。

我希望这可以使事情有所澄清。