IDA权威指南——第一章
1.2何为反汇编
为了回溯编程过程,我们使用各种工具来撤销汇编和编译过程。通过这些工具我们可以得到汇编语言形式的输出结果。
反汇编的重重困难
编译过程会造成损失
编译属于多对多操作
反编译器非常依赖于语言和库
要想准确地反编译一个二进制文件,需要近乎完美的反汇编能力.
1.3为何反汇编
通常以下情况下需要进行反汇编
分析恶意软件
分析闭源软件的漏洞
分析闭源软件的互操作性
分析编译器生成的代码,已验证编译器的性能和准确性
在调试时显示程序指令
1.4基本的反汇编算法
第一步:确定进行反汇编的代码区域.通常情况下指令和数据混杂在一起.通常用该文件的一个基本格式来区分,比如Windows下 的PE和linux下的ELF.
第二步:知道指令的起始地址之后,下一步就是读取该地址(或文件偏移量)所包含的值,并执行一次表查找,将二进制操作码的值与他的汇编语言助记符对应起来.根据被反汇编的指令集的复杂程度,这个过程可能非常简单,
第三步:获取指令并解码任何所需的操作数后,需要对它的汇编语言等价形式进行格式化,并将其在反汇编代码中输出.
IDA 基本认识:
open一个文件:
可以看到pe64.dll说明IDA已经识别到这个文件的类型,当选项中只有binary file时,说明IDA没有识别出来,此选项为默认选项.

浙公网安备 33010602011771号