Reverify Skill:AI 逆向工程的「幻觉防火墙」,用确定性工具给模型结论上锁

Reverify SkillAI 逆向工程的「幻觉防火墙」,用确定性工具给模型结论上锁

「AI 说这段代码是登录函数,置信度 98%」——但它真的读对了吗?LLM 在二进制逆向场景下的幻觉问题比源码阅读严重得多:结构体偏移量、函数边界、算法逻辑,AI 常常「编得像模像样」。Reverify 正是为解决这个痛点而生:让确定性工具成为裁判,模型只管猜测,工具负责验证。

功能与设计原则

Reverify 将 AI 与一个纯 Python 编写的逆向工程工具包配对,形成「模型提议 → 工具验证」的闭环。结构体声明、函数原型、算法行为——任何假设只有在被 PE/ELF/Mach-O 解析、反汇编、模拟执行或模式匹配验证后才会被采纳。核心原则只有一条:结论必须有证据支撑,而非置信度支撑

认可度

Reverify 于 2026 年 9 月初新晋 GitHub Trending,登上 dev.to 每周 Trending 快照的「近 7 天新仓库」Top 8,一周内获得约 600 Star(截至 2026-09-03)。项目完全开源(MIT 协议),作者为 GitHub 用户 @2akouwu,专注于二进制分析工具开发。

链接

GitHub:https://github.com/2akouwu/reverify

原作者

GitHub 用户 2akouwu,专注于可验证的 AI 辅助逆向工程工具,Reverify 是其核心项目。

介绍

LLM 在阅读源码方面表现出色,但在逆向工程任务上并不可靠。当要求模型从二进制中重构结构体或算法时,它会自信地编造偏移量、大小和行为——尤其在二进制分析中,幻觉问题比源码阅读严重得多。「模型是否在凭空捏造?」是真正将 AI 用于逆向工程的最大障碍。

Reverify 的解决方案清晰直接:配对 LLM 与确定性逆向工具包,让工具成为裁判。模型提出假设,工具负责验证。关于结构体或算法的声明只有在与实际字节比对后才会被报告——通过反汇编、模式匹配或模拟器执行——确保输出锚定在二进制而非模型的想象中。

特点

  • 确定性核心:纯 Python 实现 PE/ELF/Mach-O 解析、x86/x64/ARM/ARM64 反汇编、AOB 模式扫描、CPU 模拟、Protobuf/TLV 解析、Frida hook 生成,无需 Ghidra
  • 可选成熟引擎pip install "reverify[full]" 可升级至 capstone(反汇编)、unicorn(CPU 模拟)和 lief(跨格式解析);未安装时自动回退纯 Python 核心
  • 有据可查,非空谈:结构体声明必须通过工具验证后才被采纳
  • Agent 原生:内置 MCP Server,Claude Code、Cursor 等 Agent 可直接调用;也有纯 CLI 模式
  • 零依赖运行:从 Git checkout 直接运行,纯标准库,无需 pip 安装

使用方法

安装 CLI + MCP Server(从 PyPI):

pip install reverify  # 纯 Python 核心
pip install "reverify[full]"  # 含 capstone+unicorn+lief

# 自动分析二进制
reverify auto sample.bin --json

# 检查特定声明
reverify verify sample.bin --claim '{
  "kind": "instructions",
  "offset": 4096,
  "mnemonics": ["push", "mov", "sub"],
  "note": "function prologue"
}'

# 从 checkout 直接运行(零安装)
python reverify/cli.py auto sample.bin --json

查看活跃后端reverify backends

使用场景与人群

  • 安全研究人员:恶意软件分析、CTF 比赛
  • 逆向工程师:闭源软件互操作性研究、固件分析
  • AI 安全评估者:评估 LLM 在二进制分析任务中的幻觉率
  • LLM 应用开发者:为 AI 逆向工具包构建可验证输出层

⚠️ 注意事项:Reverify 仅限授权逆向工程用途,包括恶意软件分析、CTF、互操作性研究及你拥有或被允许分析的软件。

输入与输出案例

案例 1:验证结构体声明

输入(声明):offset=4096 处是一个函数序言(push + mov + sub)
reverify verify sample.bin --claim '{"kind":"instructions","offset":4096,"mnemonics":["push","mov","sub"]}'
输出:VERIFIED / REFUTED / INCONCLUSIVE + 实际观察到的字节

案例 2:验证重构算法行为

输入(声明):某段代码执行后 eax 寄存器值为 8
reverify verify - --claim '{"kind":"emulate_result","code":"b805000000b90300000001c8c3","arch":"x86","expect_registers":{"eax":8}}'
输出:VERIFIED + 模拟执行的实际寄存器状态

GitHub: https://github.com/2akouwu/reverify

评论区

0 条评论

登录后可评论。

Skill超级捕获手 15 阅读