reverify - 用确定性工具为 AI 的每一条断言做裁判
reverify 是一个把「模型提议、工具裁决」落到实处的开源项目:AI 提出的结构性或行为性断言,必须由确定性工具对照真实产物核验,只有通过核验的结论才算数。项目自述其同时提供上下文交接能力,避免长任务中上下文腐化。仓库采用 MIT 许可证,由 2akouwu 维护。
reverify 是一个面向 AI 辅助分析场景的核验工具。按项目自述,它要解决的问题是:语言模型在阅读代码时表现不错,但在逆向工程等需要精确事实的任务里并不可靠——它会自信地编造出偏移量、结构体字段、函数行为,并把这些当成事实陈述出来。reverify 的做法是把一个确定性的工具链放在裁判位置上:模型只能提出断言,工具负责对照真实产物检查,最后返回 VERIFIED、REFUTED 或 INCONCLUSIVE,并附上实际观察到的字节作为证据。模型本身没有资格单方面宣布某个事实成立。
它适合谁?按项目自述,主要面向做授权范围内逆向工程的人——恶意样本分析、CTF、互操作性研究,以及自己拥有或获准分析的软件;同时也面向希望让 AI 改写、重构代码时「被测试而不是被信任」的普通源码开发者。项目说明中强调,使用场景限于授权的逆向工程,并指向 SECURITY.md 说明边界。
维护者与状态
reverify 由 2akouwu 维护,仓库创建于 2026-08-31,最后提交时间为 2026-09-07。最新 release 为 v0.11.0,发布于 2026-09-04。截至 2026-09-21,该仓库获得 1235 个星标。许可证为 MIT。
从时间线看,这是一个相当年轻的项目:创建到最新一次提交之间只有一周左右,但已经发布了 v0.11.0 这一版本号,说明迭代节奏较快。需要说明的是,以上均为官方接口读取到的仓库状态,本文没有实际运行过该项目,不对其运行表现做任何判断。
主要能力
以下能力均来自项目自述(README 与相关文档),并非本文的实测结论。
- 让 AI 的断言接受核验:据项目说明,任何结构性或行为性断言都会被对照真实产物检查,而不是被直接采信,只有通过核验的部分才会成为「事实」。对应命令为
reverify verify,也可以通过项目自带的 MCP server 供 agent 调用。 - 上下文交接:项目自述提供
reverify rollover,把当前会话交接给一个文件并开启新会话,用来替代有损的自动摘要,避免长任务中上下文漂移或需要手动/clear。 - 确定性核心工具链:据项目说明,核心包含 PE/ELF/Mach-O 解析、x86/x64/ARM/ARM64 反汇编、AOB 模式扫描、CPU 模拟、Protobuf/TLV 解析、Frida hook 生成等能力,纯 Python 实现,开箱即用,不需要安装 Ghidra。
- 可选接入成熟引擎:项目自述可通过
pip install "reverify[full]"就地升级到 capstone(反汇编)、unicorn(真实 CPU 模拟)、lief(PE/ELF/Mach-O)与 Z3(证明);pip install "reverify[angr]"则加入 angr,用于函数边界、调用图与交叉引用。未安装时回退到纯 Python 核心,reverify backends可查看当前生效的后端。 - 不止于二进制:据项目说明,
reverify equiv --lang python(或 C)会在共享输入上同时运行候选实现与参考实现并检查两者是否一致,因此 AI 的改写或重构是「被测试」而不是「被信任」,被证伪时会返回具体输入与双方输出。 - Agent 原生:项目自述其以 MCP server 形式发布,Claude Code、Cursor 等 agent 可直接调用工具,同时也提供普通 CLI。
- 断言类型丰富:据项目说明,支持的断言种类包括
bytes_at、u16_at/u32_at/u64_at、pattern_present、string_present、instructions、emulate_result、behavior_equiv、prove_equiv、protobuf_field、import_present、export_present、section_present,以及语义类断言function_at、calls、references、reachable_from_entry。偏移量默认按文件偏移处理,断言中写明"space": "rva"或"va"时,验证器会通过节表换算,并在证据中同时回显三种地址。 - 信息量加权:项目自述指出,「所有断言都通过」这件事本身很容易达成,因此每条结果还带有一个
weight:仅仅复述模型已看到的事实表、重复项、二进制中并不存在的内联代码或数据、以及工具自身先前输出的回声,权重为零;其余权重则从二进制本身测量——期望内容在该文件中出现的频率与熵值。只有没有任何断言被证伪、且已验证权重达到--min-information(默认 1.0)时,重构才被判定为 grounded。 - 证据可复核:据项目说明,
reverify verify --json的每条结论都带有回执,包含二进制的 SHA-256、reverify 版本以及参与裁决的引擎,便于报告被移交与重放,而不是被相信。
使用入口
仓库地址:https://github.com/2akouwu/reverify
据项目自述,安装与调用方式如下(以下命令来自 README,本文未实际执行):
pip install reverify reverify auto sample.bin --json
项目说明中提到,也可以直接从代码检出运行,纯标准库、无需安装:
python reverify/cli.py auto sample.bin --json python reverify/cli.py parse-pe sample.exe --json python reverify/cli.py disasm 90505831C0C3 --arch x86_64
核验循环的用法,据项目说明,是把断言以 JSON 形式交给 reverify verify,断言也可以从 JSON 文件批量读入(--claims-file claims.json);只要有任何一条被证伪,CLI 就会以非零状态退出,因此 agent 或 CI 任务可以据此对重构结果设卡。
许可与限制
许可证为 MIT,按事实表原样记录。
关于适用边界,项目自述中明确写道:reverify 面向授权的逆向工程,包括恶意样本分析、CTF、互操作性研究,以及自己拥有或获准分析的软件,并指向 SECURITY.md 了解详情。这是使用前需要自行确认的前提。
关于依赖与硬件,项目说明给出的信息是:核心为纯 Python,开箱即用,不需要 Ghidra;capstone、unicorn、lief、Z3、angr 均为可选,通过 reverify[full] 或 reverify[angr] 安装,未安装时回退到纯 Python 核心。除此之外,本文不掌握该项目对具体操作系统版本、CPU 架构或硬件配置的其他要求,也不对其性能做任何推断。
需要再次说明的是,本文所引用的能力描述、命令与设计意图均来自项目自述,属于维护者视角的说明,不是中立第三方评测;本文没有运行过该项目,也未验证其自述中的任何数字或行为。