news 2026/10/18 15:59:59

看不懂二进制?让 AI Agent 替你逆向工程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
看不懂二进制?让 AI Agent 替你逆向工程

看不懂二进制?让 AI Agent 替你逆向工程

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

REA(npm 包名rea-agents,当前版本 6.5.0,MIT 协议)把逆向分析做成 AI Agent 可直接消费的本地工具:注册成 MCP 服务器后,Agent 能在本机分析原生二进制、JS/Electron 应用和 .NET 程序集,每条结论附带证据与局限。适合想看懂竞品 App 内部实现、又不熟悉 Hopper 和 Ghidra 的开发者。

起步:注册 Agent 并跑通第一条分析命令

前提是 Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+ 以及 npm。整个安装只做一件事:

npx rea-agents setup

setup会列出它支持的 Agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),为选中的客户端注册 MCP 服务器并写入配套的工作流指令,改动前需要你逐项审批,原有配置会先备份。完成后重启 Agent,之后直接用自然语言描述目标即可。

想先在终端验证,跑一条不依赖任何逆向引擎的静态命令:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json npx -y rea-agents@latest doctor --json

前者对一个已解压的 JS/Electron 应用目录或 ASAR 做静态分析,返回模块、导入、Electron 边界及各自证据;后者按你实际要做的任务范围自检引擎与注册状态。若只走终端,也可以npm install --global rea-agents后用rea命令常驻,升级时用rea update。细节见 docs/installation.md。

不装引擎的静态分析:哪些目标开箱即用

深度原生分析需要 Hopper、Ghidra 或 IDA 之一,但相当一批目标类型不需要任何外部引擎,只读文件、不运行目标:

  • JavaScript / Electron:模块、导入、source map、IPC 与原生 add-on 关系,仅依赖 Node 和 npm;
  • .NET 程序集:rea inspect-managed-artifact/inspect-managed-members纯静态读 PE/CLI 元数据与 CIL 指令;
  • Go / Rust 二进制:内嵌的编译器版本、模块、依赖清单,无需安装对应工具链;
  • SQLite 快照:表、列、索引、视图,需要 Node 24.x ≥24.15 或 26+;
  • Android APK:自带 headless JADX 反编译,Linux/macOS/Windows x64 需要完整 JDK;
  • 固件:Linux 上交给自带的 Binwalk / Unblob 做区域划分与解包。

另外两类会运行或接触目标:浏览器观察依赖一个 Chrome 系浏览器抓取页面脚本与网络请求;进程捕获在 Linux/macOS 上用本地 PTY 受控运行并记录终端交互与退出码。注意 Linux 上这些能力还要求PATH中有 procps 兼容的ps(见 docs/installation.md 的 owned-process 前置条件)。

原生二进制:REA 如何指挥 Hopper、Ghidra 和 IDA

Node 进程无法直接调用这些引擎,且各家 API 与版本不受你控制。REA 的做法是把桥接脚本送进引擎进程内执行:bridge/hopper_bridge.py 在 Hopper 里适配其 Python API,bridge/ghidra/ReaGhidraBridge.java 作为打包的 HeadlessScript 覆盖清点、反编译、引用与控制流,结果通过带认证的本地私有套接字回传。

对使用者意味着:不改造任何外部工具,引擎升级后只需维护桥接层,且通信不出本机;Hopper 按需由 REA 启动,Ghidra 与 IDA 用你已有的安装。

分析命令按会话组织,多个 provider 可用时用--provider显式选择:

rea analyze /absolute/path/to/program --provider ghidra --json rea decompile /absolute/path/to/program 0x1000 --provider ghidra --json

search、function、xrefs、trace走同一会话;加上--snapshot /path/to/analysis.json后,相同目标字节、操作与参数的查询会直接命中缓存而不再启动引擎进程。provider 健康检查用rea doctor --provider ghidra --json。完整命令与输出契约见 docs/cli.md,生成的工具目录在 docs/mcp-contracts.md。

每个结论都带证据:结果契约怎么读

这是 REA 与传统逆向 GUI 最实的差异:每个结论必须回答"凭什么"。产证据的工具返回一份规范 Evidence 记录,带evidence_id身份,包含normalized_result(归一化结果)、raw_result(引擎原始输出)和analysis_profile,并固定声明覆盖范围、limitations(局限)与 unknowns(未知项)——空结果不等于"文本不存在",未解析的引用会原样标注。

对使用者的实际影响是结果可复现、可对比、可审计:analyze_function的 Evidence 可以直接喂给compare_functions,两个版本的对比不需要重新分析。实现上,src/contracts/(88 个文件)用 Zod 校验输入输出 Schema,src/domain/(612 个文件)是无副作用的纯函数负责摘要与证据比较,tests/boundary/ 下有 740 个边界测试文件守住这套行为。结果超限时也不丢数据:MCP 响应有 10 MiB 传输预算,超出的 Evidence 保留在会话中,改用inspect_analysis_view分页或export_evidence_bundle落盘读取。

前提条件与边界:它做不到什么

  • 引擎授权自理:IDA Pro/Hex-Rays、Hopper、JEB 的商业许可需你合法持有,REA 不提供任何授权,也不安装或更新这些引擎(objdump、Rizin 等 BYO 适配器同理)。
  • 部分能力绑定 Linux:Firmware 的 Binwalk/Unblob、SQLite、信号录制、部分抓包通道记录在 Linux 上验证;Frida 插桩会执行外部代码、属破坏性操作而非只读。
  • 静态不等于运行时:静态结论不证明运行时行为,README 对每条目标类型都单列了"Requirements"一栏,建议按你的实际任务先跑doctor。
  • 分析在本机进行,目标文件不上传;但 Agent 会把工具结果交给模型,其模型服务商有自己的数据策略。
  • 项目声明仅用于合法研究、教育与你有权限分析的软件,见 DISCLAIMER.md。

架构全貌可看 docs/architecture.mermaid,新目标类型的接入进度在 docs/roadmap.md 🗺️

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 15:59:27

MCP-04_MCP Client 集成:在 Agent 中接入 MCP 工具时把 endpoint 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/18 15:58:50

uniapp中jsencrypt RSA加密实战:跨端兼容与密钥格式避坑指南

简介:本资源是一份面向前端开发者与跨端应用工程师的RSA加密解密实践方案,特别适配uni-app等基于JavaScript的跨平台框架,解决项目中敏感数据(如登录凭证、支付信息)需前端加密传输的核心安全需求。资源包共3个文件&am…

作者头像 李华
网站建设 2026/10/18 15:58:47

SpringBoot RabbitMQ点对点模式动态队列实战与避坑指南

1. 为什么点对点模式值得单独拎出来讲做后端开发的朋友对消息队列应该都不陌生,但真正在项目里落地的时候,很多人第一反应就是“发个消息、收个消息”,觉得没什么技术含量。我刚开始接触 RabbitMQ 的时候也是这个心态,直到在一个订…

作者头像 李华
网站建设 2026/10/18 15:58:04

标书查重系统3.0:两两互比机制与批量文档相似度检测实践

简介:风驰标书文档两两互比查重系统3.0是一款面向论文撰写者与标书制作人员的本地文档相似度分析工具,核心解决多份文档间内容雷同、抄袭排查的效率问题,适用于学术诚信自查与投标文件独特性校验等场景。资源包共39个文件,约67.27…

作者头像 李华
网站建设 2026/10/18 15:57:31

AI Agent-Manus 构建经验解读(下):上下文工程与状态机落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华