关于Amoco
Amoco是一款功能强大的二进制源码静态分析工具,该工具基于Python 3.8开发,可以帮助广大研究人员轻松对二进制程序执行静态符号分析。
工具特性
1、一个通用的指令解码框架,旨在减少实现对新架构的支持所需的时间。例如,大多数 IA32 指令(通用)的解码器只需要不到 800 行 Python 代码。完整的 SPARCv8 RISC 解码器(或 ARM THUMB-1 集)只需要不到 350 行代码。ARMv8 指令集解码器只需要不到 650 行代码。
2、符号代数模块可以描述每条指令的语义并计算指令块的功能表示。
3、通用执行模型,提供抽象的内存模型来透明地处理具体或符号值以及其他依赖于系统的功能。
4、各种类实现了通常的反汇编技术,比如线性扫描、递归遍历,或者更复杂的技术,比如路径谓词,它依赖于 SAT/SMT 求解器来继续发现控制流图,甚至实现像 DARE(定向自动随机探索)这样的技术。
5、各种通用助手和依赖于 arch 的漂亮打印机允许自定义外观配置(想想 AT&T 与 Intel 语法、绝对与相对偏移、十进制或十六进制立即数等)。
6、一个持久的数据库设施,允许将发现的图表与其他先前分析过的代码片段进行比较。
7、可以作为独立客户端或 IDA 插件运行的图形用户界面。
工具要求
traitlets
rich
pyparsing
crysp>=1.2
grandalf>=0.8
click
sqlalchemy
ccrawl>=1.9
prompt_toolkit>=3.0.28
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3.8环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/bdcht/amoco.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd amocopip install -r requirements.txt
运行工具安装脚本:
python setup.py install
工具运行演示
许可证协议
本项目的开发与发布遵循GPL-2.0开源许可协议。
项目地址
Amoco:【GitHub传送门】
参考资料
http://amoco.readthedocs.io/en/latest/index.html