资讯动态

一条命令给 AI Agent 装上反汇编能力:REA 逆向工程从入门到复现二进制的实战

发布时间:2026/10/16 3:05:37 来源:尧图企业网站定制
一条命令给 AI Agent 装上反汇编能力REA 逆向工程从入门到复现二进制的实战【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea在别人的 App 里看到一个想复刻的功能却没有源码也不想靠猜REAReverse Engineer Anything把 Hopper、Ghidra、IDA 这些反汇编引擎连同 JavaScript、Electron、.NET、Android 包的分析统一接成 AI Agent 能直接调用的工具一个 MCP 服务加一套 CLI 命令。下面用一个真实案例带你在一条命令配好环境之后自己把「打开二进制 → 反编译 → 验证行为真的变了」这条链路完整跑通。上图是一次典型的运行状态Agent 在上面发号施令Hopper 在下面老老实实干活。右侧是文件信息面板Mach‑O、arm64、AAPCS 调用约定底部是逐段反汇编的进度日志。你不需要打开 Hopper 的菜单也不用记它的快捷键。最短链路从 0 到第一次出结果只要三步很多人卡在「环境」。REA 把三件本来要分开做的事并进了一个命令给 Agent 注册 MCP、登记引擎路径、按需装可选组件。先跑 setup它会在写入前先给你看一份改动计划你确认后才会动配置文件和可选的Hoppernpx rea-agents setup # 注册 MCP 装工作流指令可选安装 Hopper改前需你确认拿不准环境有没有坑时跑一个纯只读的体检它逐个读主机、依赖、引擎可用性和各 Agent 的注册情况不改任何东西npx -y rea-agentslatest doctor # 只读环境体检 npx -y rea-agentslatest doctor --provider ghidra # 只体检某一个引擎平台要求和手动注册引擎的细节在 docs/installation.md。出第一个结果最省事的方式是静态分析一个 JavaScript / Electron 应用——这条路不碰任何反汇编引擎前提是 Node 22.19 / 24.11 / 26npx -y rea-agentslatest analyze-javascript-application /绝对路径/to/app --json # 直接返回模块、导入、Electron 边界 想要一个长期可用的rea命令装一次全局就行npm install --global rea-agents之后rea --help看所有子命令。临时用也可以直接npx -y rea-agentslatest 命令。对原生二进制装好全局命令后再选一个引擎。下面这条命令链就是完整的「打开 → 反编译」rea analyze /绝对路径/to/program --provider ghidra --json # 概览符号、字符串、段 rea decompile /绝对路径/to/program 0x1000 --provider ghidra --json # 取某函数的伪代码命令和输出契约的完整清单见 docs/cli.md能力源码在 src/application/。目标不全是二进制REA 覆盖的应用类型Hopper、Ghidra、IDA 的主场是原生二进制Mach‑O / ELF / PE但 REA 能接的目标比这宽得多。不是每个目标都要先装反汇编器目标类型REA 怎么处理需要原生引擎吗原生二进制接 Hopper / Ghidra / IDA 之一取伪代码、汇编、字符串、交叉引用、调用图需要至少一款JavaScript / Electron静态梳理模块、导入、Source Map、IPC 通道不启动应用不需要.NET 程序集读元数据与 CIL 指令可做不同构建的对比不需要Android APK无界面 JADX 反编译后静态检查不需要网站 / 浏览器经 CDP 观察页面结构、请求、脚本并截图不需要固件纳入同一分析框架做分区与提取视目标而定除了这几类它还能静态看 Go / Rust 二进制、SQLite 快照、WASM、EVM 字节码、录制的崩溃和抓包详见 docs/index.md 的完整目标表。两句话划清楚边界没有引擎、甚至目标根本不是二进制时分析照样能跑静态这条路只读你给的文件不会替你启动或运行目标应用。三个引擎怎么选会不会替你乱挑深度分析三选一Hopper、Ghidra、IDA Pro。这里最容易踩坑的是「我到底用的哪个引擎」结论的可信度直接取决于它。REA 的态度很明确——它是 A 而非 B它不会背着你偷偷挑一个显式传入的--provider优先级最高多台引擎同时可用而你又没指定时它直接报错把候选列出来让你选保证「结论出自哪款引擎」始终说得清。想先看看手头能用谁rea providers --json # 列出可用的引擎及其支持的操作 rea capabilities --json # 看当前路由下的能力 想固化偏好可以设环境变量REA_ANALYSIS_PROVIDER但一次性的--provider会盖过它。选错或不支持的引擎错误会带上原始原因返回而不是默默换一家。IDA 的接入契约在 docs/ida-provider.md原生分析的具体命令在 docs/native-investigation.md。结论怎么信证据链、前后对比与 pass / fail / unknown纯 GUI 分析给你的是屏幕上的反汇编视图值不值钱取决于你盯着看了多久。REA 的每次分析都带一份 Evidence 证据链——结论来源、引擎版本、目标摘要、置信度和局限于是「怎么知道它真的对了」有了抓手对比改动前后rea compare 左.json 右.json比两份证据看改了之后哪些地方变了。把结论固化rea evidence-import/rea evidence-export把语义结果存成文件下次复用不必重新拉起引擎。重建验证诚实报结果验证只给pass/fail/unknown证据缺口就老实标unknown从不把缺证据伪装成通过。这里有个值得说透的诚实细节函数文本对比里的changed只证明「文本不一样」不等于行为变了。地址、生成名的变化也可能让文本维度改变而控制流没动。所以「行为确实变了」要靠另一条证据链来坐实——官方 DX‑Ball 案例里一个 63 字节的 Windows PE 函数被还原成 C 之后跑了 3,205 组「原始 x86 差分用例」并逐字节复现了编译产物的全部 63 字节这才敢说行为对齐。证据契约与对比语义见 docs/mcp-contracts.md。把分析结果变成资产卸载时只拆 REA 自己分析结果本质是文件不只是屏幕视图。把证据导出后你的调查资产结论、交叉引用、反编译产物就和具体引擎解耦了日后从 Hopper 换到 IDA、或升级引擎版本已固化的结论照样能读不必推倒重来。快照还能做命中复用——同样的目标字节、操作、参数、引擎和设置直接读回上次的结果不用重新冷启动引擎。整个过程都在你自己机器上跑目标软件不会被交给任何托管分析服务。卸载也收得干净rea update # 更新拥有当前 CLI 的全局安装 rea uninstall # 只删 REA 自己的注册项与生成文件 rea uninstall --purge-data # 额外清掉 ~/.rea 下的缓存与状态卸载会保留你的 Hopper、Node、证据文件、抓包记录、无关技能和其它 MCP 服务。维护与排障的完整说明在 docs/installation.md 的「Diagnose, update, and remove」一节。谁该上手谁该直接上原生引擎适合你想让 AI Agent 替你走完「单个二进制 → 可运行复刻」的逆向流程又要结论可复核、目标覆盖全栈、数据留在本地——把 REA 放在工具链最前面。不适合你只想安安静静盯着窗口看反汇编的人。Hopper、Ghidra、IDA 本体就是好引擎REA 是跑在它们之上的编排与连接层是调度者不是替代品。它也不承诺替你解决每个二进制——目标格式、主机和权限边界各引擎指南里都写得很清楚。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑