反汇编引擎算法
两种 线性扫描,递归行进
线性
单纯转换为机器指令再根据字典来用汇编语言的形式输出
递归
通过解析函数,通过分支结构来递归分析
可以避免数据和指令混淆的效果
栈分析
通过对 sp 的分析来构建函数关系,关键点在于进出函数的时候 sp 的值是不会更改的,也就是 bp/sp 保存良好,但是一些坏人会插入一些无条件跳转和一些花代码,一是干扰线性的扫描造成花代码后面的程序识别错误,二是用对 bp sp 的非常规操作让程序无法正常分析
两种 线性扫描,递归行进
单纯转换为机器指令再根据字典来用汇编语言的形式输出
通过解析函数,通过分支结构来递归分析
可以避免数据和指令混淆的效果
通过对 sp 的分析来构建函数关系,关键点在于进出函数的时候 sp 的值是不会更改的,也就是 bp/sp 保存良好,但是一些坏人会插入一些无条件跳转和一些花代码,一是干扰线性的扫描造成花代码后面的程序识别错误,二是用对 bp sp 的非常规操作让程序无法正常分析