反汇编引擎算法

两种 线性扫描,递归行进

线性

单纯转换为机器指令再根据字典来用汇编语言的形式输出

递归

通过解析函数,通过分支结构来递归分析

可以避免数据和指令混淆的效果

栈分析

通过对 sp 的分析来构建函数关系,关键点在于进出函数的时候 sp 的值是不会更改的,也就是 bp/sp 保存良好,但是一些坏人会插入一些无条件跳转和一些花代码,一是干扰线性的扫描造成花代码后面的程序识别错误,二是用对 bp sp 的非常规操作让程序无法正常分析

参考网站