工具

BARF 二进制分析与逆向工程框架

一个 Python 二进制分析框架:加载 ELF 和 PE 程序,借助 Capstone 反汇编 32 位与 64 位 x86 及 32 位 ARM 代码,并将其翻译为 REIL 中间语言,使各项分析不依赖源架构。其模块可恢复控制流图和调用图、模拟执行 REIL,并把代码片段转换为 Z3 或 CVC4 公式,以检查寄存器和内存上的约束;0.6.0 版加入了基础的符号执行。随附的命令行工具可恢复 CFG 和调用图、重放 x86 执行轨迹,以及搜索、分类和验证 ROP gadget。

目标
二进制
类别
二进制分析库
关联
基础工具
来源复核于

使用条件与局限

  • 自 2019 年起不再活跃:所审阅的 master 提交日期为 2019-11-24,标记为 v0.6.0,也是最后一次提交;0.6.0 同样是 barf 在 PyPI 上的最新版本。GitHub 并未将该仓库标为已归档;仓库有标签但没有 GitHub Release 条目,尽管 README 链接了 v0.6.0 的发布页面。setup.py 将其归为 alpha 阶段,README 仍称其处于开发中。
  • setup.py 和 Travis CI 配置面向 Python 2.7 与 3.6,Python 3 支持在 0.6.0 中加入。README 称所有软件包均在 Ubuntu 16.04 x86_64 上测试,Dockerfile 则在 Ubuntu 18.04 上通过 Python 2 的 pip 安装。依赖包括 Capstone 3.0.5rc2+、pefile、pyelftools、networkx、pydot 和 pyparsing,并至少需要 Z3 或 CVC4 求解器之一;输出图形需要 Graphviz,部分测试需要 PyAsmJIT。未测试与当前 Python、Capstone 或 Z3 版本的兼容性。
  • 二进制由分析者自行提供。仓库在 examples/misc/samples 和 tests 下附带由所含 C 源码构建的小型示例二进制,另有两个用于示例演练的挑战程序:Flare-On 2015 第 2 题(examples/flareon-2015/2/bin/very_success)和 kao 的 toy project(examples/kaos-toy-project/bin/toyproject.exe)。Sphinx 手册为西班牙语,其中提到的 install.sh 脚本在所审阅的提交中并不存在。
  • 采用 BSD 2-Clause 许可,版权归 Fundación Dr. Manuel Sadosky(2014)。README 介绍了检验指令翻译的方法:用 PyAsmJIT 原生运行代码,同时在 REIL 模拟器中运行,再比较两者的最终上下文;本次未运行该 nose 测试套件,也未分析任何二进制。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · programa-stic/barf-project · 修订 9547ef8
  2. README.md#L196-L320 GitHub · programa-stic/barf-project · 修订 9547ef8
  3. setup.py GitHub · programa-stic/barf-project · 修订 9547ef8
  4. CHANGELOG.md GitHub · programa-stic/barf-project · 修订 9547ef8
  5. .travis.yml GitHub · programa-stic/barf-project · 修订 9547ef8
  6. Dockerfile GitHub · programa-stic/barf-project · 修订 9547ef8
  7. doc/manual/source/installation/index.rst GitHub · programa-stic/barf-project · 修订 9547ef8
  8. examples GitHub · programa-stic/barf-project · 修订 9547ef8
  9. LICENSE GitHub · programa-stic/barf-project · 修订 9547ef8
  10. https://pypi.org/project/barf/0.6.0/

同分区更多条目:原生二进制

原生二进制分区全部 158 项资源