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

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

- 类型：工具
- 目标：二进制
- 类别：二进制分析库
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/programa-stic/barf-project>
- 一手来源：<https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/barf/>
- 记录 JSON：<https://awesomerea.org/resources/barf/record.json>
- 英文版：[English](https://awesomerea.org/resources/barf/index.md)

## 使用条件与局限

- 自 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。
- 二进制由分析者自行提供。仓库在 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 模拟器中运行，再比较两者的最终上下文。

## 一手来源

1. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/README.md>
2. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/README.md#L196-L320>
3. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/setup.py>
4. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/CHANGELOG.md>
5. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/.travis.yml>
6. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/Dockerfile>
7. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/doc/manual/source/installation/index.rst>
8. <https://github.com/programa-stic/barf-project/tree/9547ef843b8eb021c2c32c140e36173c0b4eafa3/examples>
9. <https://github.com/programa-stic/barf-project/blob/9547ef843b8eb021c2c32c140e36173c0b4eafa3/LICENSE>
10. <https://pypi.org/project/barf/0.6.0/>

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

- [rabbitizer MIPS 指令解码器](https://awesomerea.org/zh/resources/rabbitizer/index.md) · 工具
- [ghidrecomp 命令行 Ghidra 批量反编译工具](https://awesomerea.org/zh/resources/ghidrecomp/index.md) · 工具
- [Vivisect 二进制分析与调试框架](https://awesomerea.org/zh/resources/vivisect/index.md) · 工具
- [r2pipe radare2 多语言脚本接口](https://awesomerea.org/zh/resources/r2pipe/index.md) · 工具
- [GREASE 欠约束符号执行二进制分析工具](https://awesomerea.org/zh/resources/grease/index.md) · 工具
- [PLASMA 交互式反汇编器](https://awesomerea.org/zh/resources/plasma-disassembler/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
