功能
- 恶意软件分析
- 分析闭源软件漏洞
- 调试显示程序指令
方法分类
- 动态分析:类似于沙箱,通过一步一步调试动态查阅环境进行分析
- 静态分析:通过审计程序代码进行分析
常见需要分析的文件
- Windows下的PE文件,可以指可执行文件
- Unix/Linux下的ELF文件,可执行,链接格式文件
输出格式
- ARM
- x86:主要分为AT&T语法与Intel语法
采用算法
- 线性扫描(linear sweep):能够逐条反汇编每条指令,缺陷:起始位置无法确定。
- 递归下降(recursive descent):当前指令是否被另一条指令引用来进行决定是否反汇编。主要分为以下几个指令类型
- 顺序流指令 :以线性扫描方式进行,例如add,mov,push,pop等
- 条件分支指令:为跳转则用线性,否则采用递归下降,例如jz,jnz,jl等
- 无条件分支指令:以递归下降方式进行,例如jmp
- 函数调用指令:是类似于无条件跳转与条件分支进行,例如call
- 返回指令:采用启发式方法.
网友评论