It's our wits that make us men.

2019/4/6 反汇编器

Posted on By LuLu

反汇编器

  • 反汇编器是一种工具程序,可以将机器代码转换为目标处理器专用的汇编代码或汇编指令。将机器代码转换为汇编代码的过程称为反汇编。就操作而言,反汇编就是汇编/交叉汇编的逆过程。

  • 汇编最早是一个动词,指的是将源代码翻译成机器码的过程,翻译过程结束以后,得到的就是汇编代码。汇编代码只有机器能够识别并且直接执行,而不方便程序员编写和阅读,于是人们就发明了汇编助记符,用英文缩写来对应相应的机器代码。汇编语言的编译程序所完成的工作就是将程序员用汇编助记符编写的汇编程序翻译成机器代码,让计算机按照用户的意图执行指令。人们已经将汇编和汇编助记符的概念混淆了。机器代码可以直接对应到汇编助记符的形式,反汇编器的作用就是将机器代码反向翻译到汇编助记符,让我们能够理解只有机器才能理解的二进制代码的含义。
  • 在调试器中必然会自带简单的反汇编引擎,但是这些反汇编引擎功能有限,除了反汇编功能以外没有太多的额外功能,要完成更多的功能,必须有专业反汇编程序的帮助。用得比较多的反汇编器有IDA Pro和W32Dasm。其中IDA Pro功能最为强大,能将可执行代码反汇编到多种硬件平台的指令集,配有众多的反汇编选项,能根据目标程序的编译器识别出很多函数和参数甚至结构体并且自动标注。此外还支持改名、内建简单调试器及支持很多高级功能,完全可以满足各种的工作需要。

应用场景

​ 通常,使用反汇编器是为了在没有源代码的情况下对程序进行理解,需要进行反汇编的常见情况包括以下几种。

  • 分析恶意软件
  • 分析闭源软件的漏洞
  • 分析闭源软件的互操作性
  • 分析编译器生成的代码
  • 在调试时显示程序指令

常见反汇编器:IDA PRO

​ 交互式反汇编器专业版( Interactive Disassembler Professional,IDA PRO) ,是一个世界顶级的交互式反汇编工具。从本质上说,IDA PRO是一种递归下降反汇编器,既能区分数据与代码,还设法确定这些数据的类型,这样可以更好地反汇编和更深层地分析。从功能上看,IDA PRO共有两个版本:标准版和高级版。这两个版本的主要区别在于他们支持反汇编的处理器体系结构数量不同。标准版支持30多种处理器,而高级版则支持50多种处理器。