🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
← 全部攻略

用智能体做逆向分析,一次完整的取证链路复盘

工具 / 效率类文章2026/10/15 发布6 次阅读

把「逆向」和「智能体」放在一起,最容易的误区是把它当成一句话出答案的黑箱。REA(仓库 morluto/rea,站点中文名「智能体逆向工程」)刚好相反:README 的原话是分析在本地跑,返回结果包含每一条结论背后的证据与局限。所以一次有用的复盘,看的是链路在哪一步产生了证据、又在哪一步写下了局限。

底座可以先核对:类别 token 为 chat(页面原文「dsh 原生插件 · chat」),TypeScript / MIT,最新 npm 包 rea-agents @ 6.5.0(2026-10-14 发布,发布者账号已校验与仓库一致),最近一次提交在 0 天前;周下载量 73,651 取自 npm 全网上周窗口(含 CI、镜像与爬虫),不代表装机数;星标 23.9 万(GitHub API,2026-10-15)。

再披露三件事:本站信任档位为已验证(L4 · 真实安装)——已在 dsh 0.2.0-rc.2 下真实装成、时间在 2 天前,不是静态推断;安全扫描为 🔵 含敏感能力(执行外部命令 / 读写删除本地文件 / 发起外部网络请求至少其一),且尚无人工评估;站点对该插件尚未做风险分级,原文「暂未覆盖,不等同于无风险」不能读成「已确认安全」。此外「装之前先看这里」显示「ℹ️ 暂无已知风险记录」,并提示 dsh 与插件都在 developer-preview 阶段,装前建议备份 ~/.dsh。

DSH 侧的接法要说准:站点给出的安装路径是 dsh plugin --profile web add rea-agents;插件本体是一个 MCP 服务器,DSH 侧通过插件把它注册进来。

第一步:把「想要的功能」翻译成一次可执行的分析

起点不是工具,而是一句可被检验的问题:README 的开场句是「看中某个功能,就把它拆开」。这里有个容易跳过的动作——把问题收窄到一条具体的代码路径。REA 返回的是证据链,问题越具体链越短、越好复核;写成「这个应用怎么做的」,返回就会散在模块、路由与 IPC 边界之间。

第二步:定位目标类型,先决定要不要开原生分析引擎

README 的能力表列了 20 类目标,从原生二进制到 JavaScript / Electron、.NET、Android、固件与抓包。类型决定前置条件,而前置条件决定这一步能不能立刻开始。

第一次走这条路,关键分岔只有一条:静态 JavaScript 与 .NET 检查只读文件、不运行程序,也不需要原生分析引擎;深度原生分析才要用 Hopper、Ghidra 或 IDA 之一。所以链路通常这么排:先用静态路线把「功能在哪个模块、边界在哪」定下来,再决定要不要为某段指令级细节开引擎。官方 showcase 里的 Notion 案例正走这条路——找到渲染进程的剪贴板 API,沿 preload 与 IPC 追进主进程。

坑一 · 原生分析引擎要自备,授权也必须自己合法取得

现象。 推进到指令级细节时,分析并没有真正跑起来。原因。 深度原生分析依赖 Hopper、Ghidra、IDA 之一,REA 只负责把引擎接进来,不安装也不更新这些引擎;README 明确 IDA Pro / Hex-Rays、Hopper、JEB 必须自己合法取得并获准使用,REA 不授予任何工具许可、密钥或激活权益,破解副本、盗用密钥与绕过许可限制都不在授权范围。解决办法。 动手前先确认引擎授权状态;不打算合法持有这些工具,就只走静态 JavaScript / .NET 这条不需要原生引擎的路。这是坑一。

第三步:追代码,MCP 与终端是同一套工作流

中段是「追」:智能体通过 MCP 调用 REA 检查目标、追踪相关代码,REA 把发现连同证据返回,智能体据此追问、解释行为,或写出并测试一份实现;命令行命令走同一套工作流,两条路等价。终端入口是:

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

结果里包含模块、导入、Electron 边界以及对应的证据。想长期用 rea 命令先全局装:

npm install --global rea-agents
rea --help

会话里追问得到的是对话,终端跑一遍拿 --json 得到的是可存档、可 diff 的中间产物。

第四步:读证据,证据与局限是同一次返回的两半

REA 的返回不是「结论」,而是「结论 + 证据」:README 明确说结果包含每条结论背后的证据与局限(limitations)。复核就落在两处——证据能不能指向具体位置,以及局限有没有写清这次分析在哪里停住了。

三个官方 showcase 都属于「结论可核对」的形态:DX-Ball 案例顺着一次声音调用追进位置→声像辅助函数,把不完整的伪代码还原成 C,重建版通过了 3,205 个原始 x86 用例,并复现了全部 63 个编译后函数字节;TH04 案例检查原版 PC-98 游戏的 16 位指令,还原固定角与瞄准角的计算,再与历史编译器输出对比。数字只有这两个,本文不做引申。

坑二 · 「本地分析」不等于「数据不出门」

现象。 以为分析在本地跑,整条链路的数据就都不离开本机。原因。 本地执行说的是目标不被打包上传;README 的常见问题写得很直白——REA 在本地分析目标,但你的智能体要接收工具结果,而模型服务商有自己的数据政策,REA 管不到这一段。解决办法。 先确认所用智能体后端的数据政策,再决定哪些目标适合放进来分析。这是坑二。

第五步:提炼实现,再把局限读回去

重点从「理解」转向「重建」:智能体用返回的代码、引用和未知项来解释、实现和测试。判断走没走通有个更硬的信号——重建产物能不能被原始用例或原始字节检验,DX-Ball 的 3,205 个 x86 用例与 63 个函数字节就是这种检验。

局限要分两种执行方式看:静态 JavaScript 与 .NET 检查只读文件、不运行程序;而运行时抓取会用你的用户权限去运行或交互选定的目标。同样叫「走完一条链路」,前者副作用接近零,后者留下的痕迹是真实的;原生分析还叠了一层引擎差异(README 把 Windows 上的 Ghidra 支持单列为实验性)。

总结

这条链路的价值不在「智能体替我逆向了一个功能」,而在于每一步都留下了可复核的证据和写明的局限;想对照同类插件的中文清单与安装形态见 DeepSeek Harness Hub 插件清单。

适合与不适合

适合:手上有自己的或已获授权检查的目标、想弄清一段实现细节的开发者;已在用支持本地 MCP 的智能体、想把「追代码」固化下来的团队;需要一份带证据链而非一句结论的复盘的人。

不适合:只打算「看一眼某个 App 怎么实现」却无意合法持有 Hopper / Ghidra / IDA 授权的人;Node 停在 22.0–22.18 或 24.0–24.10 又不愿升级环境的人;想拿它做未授权软件分析的人——README 明确不支持,直接劝退。

标签:智能体逆向工程、DeepSeek Harness、逆向工程取证链路、MCP 插件、证据链复盘

本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。

60 秒视频版 · AI 辅助生成并人工校对
回到顶部