逆向分析工具IDA与开源工具Ghidra、Cutter对比测评

为评估当前逆向工具的效能,特写此文:

对比版本 

对比其中需要说明的几点:

软件名称 出品方 官网 价格 反汇编算法 功能及平台支持 远程调试 反编译差异 扩展性
IDA Pro IDA商业公司(比利时公司) 点击跳转 软件+插件单独购买
价格几千美金
递归下降 支持全品类处理器X86,X64,ARM,Linux
支持静态分析和动态调试
支持,可置入调试组件,网络调试分析目标机程序 纯净还原C代码,支持间接寻址加偏移的程序的解析 支持C++,Python,JavaScript,OCaml编写插件/处理器模块/文件加载器
Ghidra 美国国家安全局NSA 点击跳转 免费 线性扫描 依赖Java,支持多处理器但未公布类别 不支持 无法过滤编译器添加的堆栈保护等代码 支持 Java 或 Python
Cutter(radare2) 社区贡献者,radare2的GUI版本 点击跳转 免费 线性扫描 未公布类别 不支持 无法过滤编译器添加的堆栈保护等代码 支持python

1.出身

Ghidra是美国国家安全局开源和维护的,无法排除有什么ZZ问题、后门。

Cutter是radare2的GUI版本,但是之前radare 和radare2到Cutterr的变迁存在开发团队理念不合才做的分家(分支),开发团队的稳定性因为不是商业机构,可能存在长期支持维护不好的问题。

2.反汇编算法

IDA十几年的商业迭代,目前已经是7.6版本,反汇编的算法采用的是 递归下降算法,指 反编译时,按照调用关系来汇编,没有任何地方跳转到的十六进制字节,是不进行汇编的,代码量=有效代码量,这种独特的解析算法基于对程序的深刻分析,而其他的反汇编软件采用 线性扫描反汇编算法,从程序开始到结束,逐个字节对照汇编指令进行分析,反汇编出来的代码量=程序文件大小。效率和代码里,IDA更优。

3.远程调试

IDA支持在目标机上放置调试组件dbgserver,可以通过远程进行静态程序加载和动态调试。可以不需要在目标电脑上(如wince系统,linux系统)安装逆向分析软件或动态调试软件。

你可能感兴趣的:(开发技术杂谈,安全)