reverse-skill 实战教程:为 Claude Code、Cursor、Cline、Codex 配置 AI 逆向与安全技能路由
前言
随着 Claude Code、Cursor、Cline、Codex CLI 等 AI 编程工具逐渐具备文件读取、终端执行和 MCP 工具调用能力,AI 已经可以辅助完成代码审计、二进制分析、APK 逆向、协议分析以及 CTF 解题。
但真正使用时会遇到几个问题:
- 面对 APK,应该先使用 jadx、apktool,还是直接上 Frida?
- 遇到 EXE、DLL、ELF,应该选择 IDA、Ghidra,还是 radare2?
- 分析前端加密参数时,应该先找调用链、Hook 函数,还是模拟浏览器环境?
- AI 经常猜测不存在的命令,或者跳过取证和授权环节直接操作目标。
- 不同逆向工具、MCP 服务和分析脚本分散在不同目录中,难以统一管理。
- 一次任务积累下来的经验无法自动复用。
reverse-skill 正是为解决这些问题而设计的。
它不是一个新的反编译器,也不是"一键渗透工具",而是一个面向 AI Agent 的安全技能路由包:先识别任务类型,再选择对应的方法论、Skill、脚本和工具链,最后按照证据链输出分析报告。
本文所有示例仅适用于自有程序、授权测试环境、公开 CTF、教学靶场及合法安全研究。禁止用于未授权扫描、攻击、数据获取或绕过安全措施。
项目地址:zhaoxuya520/reverse-skill
一、reverse-skill 是什么
根据官方说明,当 AI Agent 遇到 APK、二进制程序、前端 JavaScript 加密、PCAP、CTF 或授权渗透测试任务时,reverse-skill 会先进行任务路由,然后检查本机工具,进入对应的标准分析流程。官方 README
其整体流程可以概括为:
text
用户提出安全或逆向任务
↓
读取全局 RULES.md
↓
master-route.ps1 判断任务类型
↓
生成 scope.md,确认授权和测试范围
↓
进入对应场景的 SKILL.md
↓
调用本机工具、脚本或 MCP 服务
↓
保存时间线、证据和分析结果
↓
生成报告并沉淀可复用经验
例如:
| 用户任务 | 推荐路由 |
|---|---|
| 分析 APK、Smali、加固应用 | apk-reverse/ |
| 分析 EXE、DLL、SO、ELF | ida-reverse/、ghidra-reverse/ |
| 分析 .NET/C# 程序 | dotnet-reverse/ |
| 分析前端签名和加密参数 | js-reverse/ |
| 分析 PCAP 或自定义协议 | protocol-reverse/ |
| 分析固件、路由器和 IoT | firmware-pentest/ |
| 恶意样本和 YARA 规则 | malware-analysis/ |
| 代码审计和 SAST | code-audit/ |
| CTF 综合题目 | CTF-Sandbox-Orchestrator/ |
| 输出分析报告 | docs-generator/ |
完整路由表可参考:MASTER-ROUTING.md
二、它和普通提示词有什么不同
普通提示词通常只告诉 AI:
text
请帮我分析这个程序。
AI 可能直接执行某个工具,也可能根据经验猜命令,没有固定过程。
reverse-skill 则把任务拆成多个受约束的阶段。
1. 先路由,后执行
AI 必须先判断任务属于 APK、JS、协议、二进制、固件还是其他方向,再进入对应 Skill。
这样可以减少以下问题:
- 使用不适合的工具;
- 对所有任务套用同一个流程;
- 忽略静态分析与动态分析的先后关系;
- 没有证据就直接给出结论。
2. 本机工具索引
项目通过脚本扫描本机环境,生成:
text
skills/tool-index.md
skills/tool-index.json
AI 后续需要使用工具时,应先查工具索引,而不是假设系统中已经安装了 jadx、Frida、IDA 或 radare2。
3. Scope 授权门禁
任何主动安全操作之前,都需要创建 scope.md,记录:
- 授权状态;
- 授权依据;
- 测试目标;
- 允许的测试范围;
- 禁止的行为;
- 网络访问模式;
- 数据处理要求。
官方约定指出:没有 Scope 时,只允许阅读文档和进行路由,不应对目标执行主动扫描、Hook 或利用。Scope 契约
4. 证据链
项目强调:
text
Evidence → Finding → Path
证据 发现 完整分析路径
一项分析结论应能对应到:
- 样本哈希;
- 文件偏移;
- 函数地址;
- 反编译代码;
- 执行命令;
- 工具输出;
- 数据包或截图;
- 可复现步骤。
这比只让 AI 输出一段"看起来正确"的分析结论可靠得多。
三、安装前准备
本文以 Windows 10/11 + PowerShell 为例。
1. 基础环境
建议准备:
| 环境 | 用途 |
|---|---|
| Git | 下载和更新仓库 |
| PowerShell 5.1 或更高版本 | 执行 Windows 路由脚本 |
| Python 3.x | Frida、辅助脚本和部分逆向工具 |
| Node.js 22.12+ | JavaScript 工具链及 MCP 服务 |
| Java/JDK | jadx、apktool 等 Android 工具 |
| AI 编程客户端 | Claude Code、Cursor、Cline、Codex CLI 等 |
不同任务不需要一次性安装全部工具。
例如只分析本地 PE 文件时,不一定需要 Android SDK;只有进行 APK 分析时,才需要 Java、jadx、apktool、adb 等组件。
2. 检查基础命令
打开 PowerShell:
powershell
git --version
powershell -Command '$PSVersionTable.PSVersion'
python --version
node --version
java -version
如果某条命令不存在,应先安装对应运行环境。
四、下载 reverse-skill
选择一个专门存放安全工具的目录,例如:
powershell
New-Item -ItemType Directory -Force -Path D:\SecurityTools
Set-Location D:\SecurityTools
克隆仓库:
powershell
git clone https://github.com/zhaoxuya520/reverse-skill.git
Set-Location .\reverse-skill
查看目录:
powershell
Get-ChildItem
主要结构如下:
text
reverse-skill
├── README.md
├── README_zh.md
├── README_AI.md
├── RULES.md
├── skills
│ ├── SKILL.md
│ ├── MASTER-ROUTING.md
│ ├── routing.md
│ ├── scripts
│ ├── apk-reverse
│ ├── js-reverse
│ ├── ida-reverse
│ ├── ghidra-reverse
│ ├── protocol-reverse
│ ├── malware-analysis
│ └── ...
├── CTF-Sandbox-Orchestrator
└── work
其中最重要的文件是:
| 文件 | 作用 |
|---|---|
README_AI.md |
AI Agent 的引导和集成说明 |
RULES.md |
全局安全规则 |
skills/SKILL.md |
Skill 总入口 |
skills/MASTER-ROUTING.md |
快速路由表 |
skills/routing.md |
完整场景路由矩阵 |
skills/tool-index.md |
当前计算机的工具扫描结果 |
skills/scripts/master-route.ps1 |
PowerShell 路由脚本 |
skills/scripts/case-init.ps1 |
创建任务范围与证据目录 |
五、生成本机工具索引
首次克隆后,skills/tool-index.md 可能并不存在,因为它需要根据当前计算机的实际环境生成。
在项目根目录运行:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\refresh-tool-index.ps1
执行完成后检查:
powershell
Test-Path .\skills\tool-index.md
Test-Path .\skills\tool-index.json
查看 Markdown 版本:
powershell
Get-Content .\skills\tool-index.md
也可以查看 JSON:
powershell
Get-Content .\skills\tool-index.json -Raw |
ConvertFrom-Json |
ConvertTo-Json -Depth 10
工具索引只代表"当前计算机、当前时刻"的检测结果。更换计算机、移动工具目录或安装新工具后,应重新运行刷新脚本。官方 AI 引导文件也将刷新工具索引列为首次配置的必要步骤。README_AI.md
六、执行自检
项目提供了冒烟测试脚本,用于检查脚本解析和路由矩阵:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\smoke.ps1
如果系统因为执行策略阻止脚本,可以只对当前 PowerShell 会话临时放宽:
powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
然后重新执行:
powershell
.\skills\scripts\smoke.ps1
不建议为了运行一个项目直接永久关闭系统的 PowerShell 安全策略。
七、测试 AI 路由功能
1. 路由 APK 任务
创建输出目录并执行:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\master-route.ps1 `
-Hint "分析一个自有 APK,检查 Manifest、Smali 和本地 so" `
-OutDir .\work\route-apk-demo
查看结果:
powershell
Get-Content .\work\route-apk-demo\route-scope.md
预期结果中会出现类似字段:
text
primary: R1
primary_label: APK reverse
primary_skill: skills/apk-reverse/SKILL.md
confidence: high
这意味着 AI 下一步应打开:
text
skills/apk-reverse/SKILL.md
而不是直接猜测 jadx 或 Frida 命令。
2. 路由前端 JS 逆向任务
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\master-route.ps1 `
-Hint "分析前端 JavaScript 签名参数和 CryptoJS 调用链" `
-OutDir .\work\route-js-demo
结果通常会路由到:
text
skills/js-reverse/SKILL.md
3. 路由协议分析任务
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\master-route.ps1 `
-Hint "分析自有设备的 PCAP,识别自定义 TCP 协议和 Protobuf 字段" `
-OutDir .\work\route-protocol-demo
对应入口通常为:
text
skills/protocol-reverse/SKILL.md
4. 路由 Rust 二进制任务
图片中项目的主要语言标签是 PowerShell,但这不代表它只能分析 PowerShell。
例如:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\master-route.ps1 `
-Hint "分析自己编译的 stripped Rust 二进制,恢复主要函数和字符串引用" `
-OutDir .\work\route-rust-demo
该任务可能命中:
text
skills/go-rust-reverse/SKILL.md
八、创建一个规范的分析任务
路由完成后,还不能马上对目标执行主动操作。下一步应建立 Case。
假设我们准备分析自己编译的程序:
text
D:\SecurityLab\samples\hello.exe
先创建项目目录:
powershell
New-Item -ItemType Directory -Force -Path D:\SecurityLab\hello-analysis
初始化 Case:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\case-init.ps1 `
-Hint "使用 Ghidra 对自己编译的 hello.exe 进行离线静态分析" `
-CaseName "hello-static" `
-ProjectRoot "D:\SecurityLab\hello-analysis" `
-AuthGranted `
-AuthBasis "own_system" `
-EvidenceOfAuth "Self-built training sample" `
-InScopeAssets "D:\SecurityLab\samples\hello.exe" `
-NetworkProfile "offline"
执行后会创建:
text
D:\SecurityLab\hello-analysis\work\hello-static
├── README.md
├── scope.md
├── timeline.md
├── workitems.md
├── evidence
├── notes
└── report
这些文件分别用于:
scope.md:授权、范围和网络策略;timeline.md:记录每一步操作;workitems.md:任务拆分和完成状态;evidence/:保存证据;notes/:保存临时分析记录;report/:保存最终报告。
当前 case-init.ps1 会非常保守地处理 offline 模式,因此即使已经声明自有样本,也可能保持:
text
ready_for_act: false
此时不要删除授权门禁,而应人工打开 scope.md,检查以下内容:
markdown
## auth
- status: granted
- basis: own_system
- evidence_of_auth: Self-built training sample
## in_scope
- assets:
- D:\SecurityLab\samples\hello.exe
## network_profile
- mode: offline
确认测试目标、授权和禁止事项无误后,再完成签署项。
case-init.ps1 的参数和生成字段可以在官方脚本源码中查看。
九、执行 Scope 门禁检查
运行:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\case-guard.ps1 `
-CaseRoot "D:\SecurityLab\hello-analysis\work\hello-static"
如果 Scope 未准备好,脚本通常会返回非零退出码。
可以检查:
powershell
$LASTEXITCODE
常见情况:
text
0:Scope 检查通过
2:Scope 未准备好,不能执行主动操作
不要通过删除 scope.md、伪造授权或滥用强制参数绕过门禁。这个约束既保护测试目标,也能避免 AI Agent 因误解任务而执行越界操作。
十、让 AI 客户端使用 reverse-skill
reverse-skill 并不是双击运行的桌面软件。它需要通过项目规则、Custom Instructions、MCP 或 Agent Skill 机制注入到 AI 客户端中。
1. 最小指令模板
可以把下面内容加入 AI 客户端的项目级规则:
markdown
# Security and Reverse Engineering Routing
reverse-skill 安装路径:
D:\SecurityTools\reverse-skill
遇到逆向、安全、CTF、协议分析、代码审计任务时:
1. 先读取 D:\SecurityTools\reverse-skill\RULES.md
2. 再读取 skills\MASTER-ROUTING.md
3. 必要时运行 skills\scripts\master-route.ps1
4. 在执行任何主动操作前运行 case-init.ps1
5. auth.status != granted 时禁止扫描、Hook、利用或访问目标
6. 根据路由结果读取对应目录下的 SKILL.md
7. 工具状态以 skills\tool-index.md 为准
8. 所有结论必须建立 Evidence → Finding → Path 证据链
9. 过程写入 timeline.md 和 workitems.md
10. 仅操作 scope.md 中明确列出的资产
2. Claude Code
可以将规则加入项目的 CLAUDE.md,并明确 reverse-skill 的绝对路径。
示例:
markdown
For reverse engineering or authorized security tasks, read:
D:\SecurityTools\reverse-skill\README_AI.md
Follow route-first, scope-before-act and evidence-chain requirements.
Never perform active operations when auth.status is not granted.
3. Cursor
在项目级 Rules 中加入相同规则,核心不是文件名,而是让 Cursor 明确知道:
- reverse-skill 的安装路径;
- 三个主要入口文件;
- 先路由后执行;
- 未授权不能主动操作。
至少应注入:
text
skills/SKILL.md
skills/routing.md
skills/tool-index.md
4. Cline
可以在项目自定义指令中加入:
text
Before handling reverse-engineering or security tasks, read the
reverse-skill routing files and create a scoped case.
Do not assume tools are installed.
Check tool-index.md first.
5. Codex CLI
可以通过项目说明文件或 Agent 指令告诉 Codex:
text
安全与逆向任务必须先读取 reverse-skill/README_AI.md,
生成工具索引,完成 master-route 和 case-init,
随后才能进入具体 SKILL.md。
不同 AI 客户端的规则目录可能随版本变化,因此应以对应客户端的最新官方文档为准。reverse-skill 的核心要求并不依赖某个特定客户端,只要客户端支持项目规则、终端命令或 MCP,就可以接入。
十一、一个完整的安全任务工作流
以"分析自己编译的 Rust 程序"为例,推荐流程如下。
阶段一:准备样本
powershell
Get-FileHash D:\SecurityLab\samples\demo.exe -Algorithm SHA256
将哈希保存下来,作为样本身份标识。
阶段二:刷新工具索引
powershell
Set-Location D:\SecurityTools\reverse-skill
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\refresh-tool-index.ps1
阶段三:任务路由
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\master-route.ps1 `
-Hint "分析自己编译的 stripped Rust PE,恢复入口、字符串和主要业务函数" `
-OutDir .\work\rust-route
阶段四:建立 Scope
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\case-init.ps1 `
-Hint "分析自己编译的 stripped Rust PE" `
-CaseName "rust-demo" `
-ProjectRoot "D:\SecurityLab\rust-analysis" `
-AuthGranted `
-AuthBasis "own_system" `
-EvidenceOfAuth "Source and binary owned by analyst" `
-InScopeAssets "D:\SecurityLab\samples\demo.exe" `
-NetworkProfile "offline"
阶段五:打开 PRIMARY Skill
根据路由结果,让 AI 读取:
text
skills/go-rust-reverse/SKILL.md
然后再选择:
- Ghidra;
- IDA;
- radare2;
- strings;
- PE 元数据工具;
- 符号和特征识别脚本。
阶段六:追加证据
例如记录样本哈希:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\append-evidence.ps1 `
-CaseRoot "D:\SecurityLab\rust-analysis\work\rust-demo" `
-Id "E-001" `
-Title "目标样本 SHA256" `
-ReproCommand "Get-FileHash D:\SecurityLab\samples\demo.exe -Algorithm SHA256"
其他证据可以包括:
text
E-002:PE 头和编译器特征
E-003:程序入口函数
E-004:关键字符串交叉引用
E-005:主要业务函数调用关系
E-006:动态执行日志
阶段七:生成最终报告
最终报告建议包含:
markdown
# 分析概览
# 样本信息
# 授权与测试范围
# 使用工具与版本
# 静态分析
# 动态分析
# 关键函数和调用链
# 证据索引
# 结论
# 不确定项与后续建议
十二、如何接入 MCP 工具
对于 IDA、浏览器分析、Burp Suite 等外部工具,可以通过 MCP 服务连接 AI Agent。
官方给出的配置思路类似:
json
{
"mcpServers": {
"anything-analyzer": {
"url": "http://localhost:23816/mcp"
},
"idapro": {
"url": "http://127.0.0.1:13337/mcp"
},
"jshook": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook@0.3.4"
],
"env": {
"JSHOOK_BASE_PROFILE": "search"
}
}
}
}
这里需要注意:
- JSON 只是示例,不代表服务已经安装。
- 应先查看
tool-index.md。 - MCP 服务必须绑定可信地址。
- 不建议将本地逆向工具 MCP 直接暴露到公网。
- 不要在配置文件中硬编码 API Key、Cookie 和生产环境凭据。
- 第三方 MCP 和 Skill 本质上可能执行本地代码,安装前应审查来源和脚本。
十三、常见问题
1. 找不到 tool-index.md
原因:首次克隆后还没有扫描当前计算机。
解决:
powershell
powershell -NoProfile -ExecutionPolicy Bypass `
-File .\skills\scripts\refresh-tool-index.ps1
2. PowerShell 提示禁止运行脚本
解决:
powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
该设置仅对当前终端会话生效。
3. master-route.ps1 不识别 -ProjectRoot
当前主分支的 master-route.ps1 主要参数是:
text
-Hint
-OutDir
因此可以使用:
powershell
powershell -File .\skills\scripts\master-route.ps1 `
-Hint "任务描述" `
-OutDir .\work\route-result
-ProjectRoot 是 case-init.ps1 支持的参数。项目更新较快,文档和脚本参数短期内可能存在差异,实际使用时应以当前下载版本的脚本 param(...) 定义为准。
查看脚本参数:
powershell
Get-Help .\skills\scripts\master-route.ps1 -Full
Get-Help .\skills\scripts\case-init.ps1 -Full
也可以直接查看脚本开头:
powershell
Get-Content .\skills\scripts\master-route.ps1 -TotalCount 30
4. AI 仍然跳过路由直接执行命令
说明项目规则没有稳定注入 AI 上下文。
应确保客户端明确读取:
text
RULES.md
skills/MASTER-ROUTING.md
skills/SKILL.md
skills/tool-index.md
并添加:
text
Route first, execute second.
Scope before ACT.
5. 路由结果不准确
任务描述过于模糊时,路由器可能落到通用逆向 R0。
不推荐:
text
帮我看看这个文件。
推荐:
text
对自己编译的 Rust PE 进行离线静态分析,
识别入口函数、关键字符串、序列化格式和网络调用,
优先使用 Ghidra,不进行外部网络访问。
描述中应包含:
- 文件类型;
- 操作系统;
- 编程语言;
- 预期目标;
- 是否允许动态执行;
- 是否允许联网;
- 是否属于自有或授权资产。
6. 工具索引显示工具不存在,但实际已经安装
可能是工具未加入 PATH,或者安装在非标准目录。
先检查:
powershell
Get-Command jadx -ErrorAction SilentlyContinue
Get-Command adb -ErrorAction SilentlyContinue
Get-Command python -ErrorAction SilentlyContinue
调整环境变量后,重新生成工具索引。
十四、安全使用建议
1. 将实验环境与办公环境隔离
建议使用:
- Windows Sandbox;
- Hyper-V;
- VMware;
- VirtualBox;
- 专用 Kali 虚拟机;
- 无敏感数据的测试电脑。
2. 不要直接运行未知样本
对于未知 EXE、DLL、APK 或脚本,应优先:
- 计算哈希;
- 静态检查;
- 在隔离环境分析;
- 禁止访问办公网络;
- 禁止挂载真实用户目录;
- 禁止使用包含真实凭据的浏览器环境。
3. 审查第三方 Skill 和 MCP
Skill 会影响 AI 的行为,MCP 则可能让 AI 获得终端、浏览器和逆向工具的控制能力。因此安装前应检查:
SKILL.md;- PowerShell/Bash/Python 脚本;
- MCP 启动命令;
- 下载地址;
- 外部网络请求;
- 凭据读取行为;
- 是否包含混淆命令;
- 是否会修改系统配置。
4. 保留完整时间线
一次高质量安全分析至少应保留:
text
谁在什么时间
对哪个授权目标
使用什么工具
执行了什么操作
获得了什么证据
形成了什么结论
这既方便复现,也方便团队审计。
十五、reverse-skill 适合哪些人
它比较适合:
- 安全研究人员;
- 逆向工程初学者;
- CTF 选手;
- 渗透测试团队;
- 移动安全研究人员;
- 固件和 IoT 分析人员;
- 使用 Claude Code、Cursor、Cline、Codex 的开发者;
- 希望建立标准化安全分析流程的团队。
它不适合以下需求:
- 希望完全不理解原理、只靠 AI 自动攻击;
- 希望绕过授权流程;
- 把 AI 输出直接当成最终安全结论;
- 在生产环境中无审查地运行第三方脚本;
- 将本地 MCP 服务直接暴露到公网。
总结
reverse-skill 的核心价值,不是"让 AI 自动使用多少种安全工具",而是为 AI 安全任务建立了一套可重复、可审计的执行路径:
text
任务分类
→ Skill 路由
→ 授权与范围确认
→ 本机工具检查
→ 静态/动态分析
→ 证据记录
→ 发现验证
→ 报告输出
→ 经验沉淀
如果只是临时分析一个文件,直接向 AI 提问可能更快;但当任务涉及多种工具、多个阶段、团队协作、授权边界和报告交付时,reverse-skill 的路由、Scope 和证据链机制会更有价值。
项目更新较快,本文中的命令应结合当前主分支脚本参数使用。建议重点阅读以下官方资料: