手把手教程 · 5 步

Codex 逆向复刻完整工作流:REA + Reverse-skill + PentAGI

跟着这 5 步走,你就能把一个喜欢的功能,从「看懂」到「用自己的技术栈重做」再到「安全体检」完整跑一遍。

REA 看懂 · Reverse-skill 调度 · PentAGI 体检 · Codex 串起来动手做

中文配音 + 同步字幕,也可以按章节跳着听

全景图

一条流水线上,四个角色各管一摊。

先认清谁负责什么,后面每一步你就知道是谁在干活。

Codex(或 Claude Code)

总指挥

跟你对话、帮你动手写代码,把其余三个角色串起来。

REA

看懂

把一个功能是怎么实现的拆开,并且给你证据。

Reverse-skill

调度

自动判断该走哪条分析线、挑工具,缺了就装。

PentAGI

体检

复刻完成后,对授权目标做安全测试。

动手之前

先把底子装好,三件东西而已。

  • Node.js 22.x ≥ 22.19,或 24.x ≥ 24.11,或 26+先装这个
  • Git必需
  • Codex 或 Claude Code 桌面端 装好并登录必需

终端窗口 · 验证

node --version
v22.19.0

git --version
git version 2.45.0

打印出版本号就说明装好了;提示 command not found 就是还没装。

第 1 步

把 REA 和 Reverse-skill 接到你的助手上。

两条命令线,一条接「看懂」,一条接「调度」。

01

接入 REA

一条命令,装好转接头

终端窗口

npx rea-agents setup

过程中它会让你选用哪个助手(Claude Code / Codex / Cursor),并列出要改哪些配置文件,看一眼确认通过。

成功后看到

✓ Registered REA MCP server
✓ Installed workflow instructions
✓ Backed up existing config
→ Restart your agent

按提示把助手重启一下,接入完成。

REA 不是新的反编译器,它是个「转接头」——通过 MCP 协议,一头接 AI 编程助手,一头接逆向/分析工具。能分析的目标包括:原生程序(native binary)、Electron/JS 桌面应用、安卓 APK、.NET 程序集、网站、网络抓包(HAR)。

目标分析在你本机运行;但 AI 模型那一侧,服务商有各自的数据政策。许可证 MIT;用到 Hopper、IDA、JEB 等商业工具需自行合法取得授权。

在哪操作
终端窗口
许可证
MIT
仓库
morluto/rea

02

接入 Reverse-skill

克隆仓库,再刷新工具索引

终端窗口

git clone https://github.com/zhaoxuya520/reverse-skill.git

然后按系统刷新工具索引

# Linux / macOS
bash skills/scripts/refresh-tool-index.sh

# Windows(PowerShell)
powershell -File skills/scripts/refresh-tool-index.ps1

成功后打开 skills/tool-index.md,就能看到它在你机器上检测到了哪些工具(jadx、apktool、frida、radare2 等),心里有个底。

作用:根据任务自动路由到合适的逆向/安全工具和工作流。

许可证主要为 MIT,部分子模块/第三方工具有独立许可。合法边界:只能测试自有或明确授权的目标。

在哪操作
终端窗口
成功标志
tool-index.md 列出本机工具
仓库
reverse-skill

第 2 步

让 REA 读懂目标:用大白话提需求。

打开 Codex 对话窗口,不用写术语,把你想知道的事说清楚就行。

Codex 对话窗口 · 粘贴这句

帮我看看这个笔记软件的搜索是怎么实现的,把证据给我;
之后我想用自己的技术栈做一个类似的功能。

这时 Reverse-skill 先判断该走哪条分析线、要用哪些工具(缺了现装),REA 负责去读相关程序、追踪处理过程。你不用自己啃汇编。

第 3 步

核对证据链:每一条结论都要有出处。

REA 会按三类卡片给你结论。你要做的只有一件事:确认它说的每一条,都能找到对应证据。

证据 Evidence

  • 指向具体文件与行号:search.js : 42
  • 关键调用:idx.query(q)
  • 交叉引用:xref ← onInput()

局限 Limitations

  • 未覆盖动态加载模块
  • 排序逻辑被压缩
  • 仅静态分析

未知 Unknowns

  • 排序权重来源未知
  • 缓存策略未知
  • 需运行时验证

第 4 步

用自己的技术栈重写,而不是抄一遍原码。

在 Codex 对话窗口里让它用你自己的技术栈做一个功能类似的新版本,它会告诉你每个文件叫什么、放在哪、怎么跑起来。

跑不起来就把报错原样发回去,让它继续改,直到能跑。

你的项目 · TypeScript(示意)

export function search(q: string) {
  const idx = buildIndex(docs);
  return rank(idx.match(q));
}

基于理解重写,非照搬原码。

第 5 步

用 PentAGI 做一次安全体检。

如果复刻的东西要上线(尤其带后端、带表单),上线前跑一遍。

PentAGI 是开源的 AI 红队,多个智能体分工,全程在 Docker 沙箱里跑。

Docker / Docker Compose
必需
CPU
≥ 2 vCPU
内存
≥ 4 GB RAM
磁盘
≥ 20 GB
网络
联网

终端窗口 · 启动

curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose.yml
docker compose up -d

浏览器窗口 · 打开 Web UI

https://localhost:8443

# 默认账号
admin@pentagi.com / admin

它会给出一份漏洞报告,按严重程度(High / Medium / Low)逐条说明怎么修。

报错模板

中途卡住很正常,把三样东西一起发给 Codex。

Codex 对话窗口 · 套用这个模板

① 出错前做了什么:在终端跑了 refresh-tool-index
② 报错原文:Error: cannot find module 'xxx'
③ 我想要的:先解释原因,再给下一步具体操作,
   说清在哪个窗口做、成功会看到什么。

把报错原样粘贴,不要只写「报错了」——出处越具体,修得越快。

语音讲解 点击播放,约 4 分钟
0:00 / 3:57