逆向工程基本原理04
反汇编
反汇编的目标是从二进制文件中识别并恢复程序代码
帮助分析人员得到相对易读的代码
经典反汇编算法
线性扫描算法
是一种按字节顺序进行指令解析的方法
从代码段的第一个字节开始,解码一条指令,然后紧接着从下一个字节继续解码,如此线性推进直到结束
优点:算法简单,速度快
缺点:无法正确处理跳转指令和数据嵌入的情况,可能导致误解码和遗漏指令
objdump 使用线性扫描算法进行反汇编
一旦遇到数据段嵌入代码段的情况(如跳转表),就会把数据误当成指令解码,导致后续整体偏移,出现”指令污染”的连锁错误
递归遍历算法
启发式算法
可重汇编的反汇编
License
Comments