reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
251
reverse-skill-repo/docs/ARCHITECTURE.md
Normal file
251
reverse-skill-repo/docs/ARCHITECTURE.md
Normal file
@@ -0,0 +1,251 @@
|
||||
# 系统架构图
|
||||
|
||||
## 完整行为链流程图
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start([用户提出安全/逆向任务]) --> Detect{触发关键词匹配?}
|
||||
Detect -->|是| ReadRouting[读取 SKILL.md + routing.md]
|
||||
Detect -->|否| Normal([正常对话])
|
||||
|
||||
ReadRouting --> RouteMatch{路由矩阵匹配?}
|
||||
RouteMatch -->|未命中| ProposeNew[提议新增 skill<br/>按 CONTRIBUTING.md]
|
||||
RouteMatch -->|命中| CheckJournal[检查 field-journal<br/>是否有同类经验]
|
||||
|
||||
CheckJournal --> CheckTools[读取 tool-index.md<br/>确认工具状态]
|
||||
CheckTools --> ToolOK{工具可用?}
|
||||
|
||||
ToolOK -->|缺失| Bootstrap[调用 bootstrap-reverse.ps1<br/>自动安装]
|
||||
ToolOK -->|可用| Execute[进入 skill 工作流]
|
||||
|
||||
Bootstrap --> BootOK{安装成功?}
|
||||
BootOK -->|成功| Execute
|
||||
BootOK -->|失败| Guide[输出结构化引导<br/>等用户手动处理]
|
||||
Guide --> UserConfirm([用户确认已安装])
|
||||
UserConfirm --> Execute
|
||||
|
||||
Execute --> TaskDone{任务完成?}
|
||||
TaskDone -->|否| Execute
|
||||
TaskDone -->|是| ReviewCase[调用 case-review<br/>校验证据图]
|
||||
ReviewCase --> GenReport[调用 docs-generator<br/>生成报告 + 图表]
|
||||
|
||||
GenReport --> WriteJournal[回写 field-journal<br/>经验沉淀]
|
||||
WriteJournal --> UpdateIndex[更新索引/路由/manifest]
|
||||
UpdateIndex --> Output([输出最终结果])
|
||||
```
|
||||
|
||||
## Skills 模块关系图
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph 路由层
|
||||
SKILL[SKILL.md<br/>总控入口]
|
||||
Routing[routing.md<br/>路由矩阵]
|
||||
end
|
||||
|
||||
subgraph 逆向分析
|
||||
APK[apk-reverse<br/>APK 逆向]
|
||||
IDA[ida-reverse<br/>IDA Pro]
|
||||
R2[radare2<br/>CLI 分析]
|
||||
RE[reverse-engineering<br/>通用方法论]
|
||||
BinDiff[binary-diff<br/>符号迁移]
|
||||
PatchDiff[patch-diff-exploit<br/>N-day 武器化]
|
||||
end
|
||||
|
||||
subgraph 漏洞利用
|
||||
Pwn[pwn-chain<br/>RE→exploit]
|
||||
Firmware[firmware-pentest<br/>固件全链路]
|
||||
end
|
||||
|
||||
subgraph 渗透测试
|
||||
Pentest[pentest-tools<br/>工具链+循环框架]
|
||||
SrcHunter[src-hunter<br/>19 playbook]
|
||||
EDR[edr-bypass-re<br/>EDR 绕过]
|
||||
end
|
||||
|
||||
subgraph Web/浏览器
|
||||
JS[js-reverse<br/>JS 签名逆向]
|
||||
Browser[browser-automation<br/>Playwright+OpenReverse]
|
||||
end
|
||||
|
||||
subgraph 基础设施
|
||||
Bootstrap[bootstrap-reverse.ps1<br/>按需自举]
|
||||
Discovery[ToolDiscovery.ps1<br/>工具发现]
|
||||
ToolIndex[tool-index<br/>状态索引]
|
||||
end
|
||||
|
||||
subgraph 输出层
|
||||
Docs[docs-generator<br/>报告生成]
|
||||
Diagram[diagram-generator<br/>图表生成]
|
||||
Review[case-review<br/>Evidence graph audit]
|
||||
Journal[field-journal<br/>自动进化]
|
||||
end
|
||||
|
||||
subgraph 外部
|
||||
CTF[CTF-Sandbox-Orchestrator<br/>40+ 子技能]
|
||||
end
|
||||
|
||||
SKILL --> Routing
|
||||
Routing --> APK & IDA & R2 & RE & BinDiff & PatchDiff
|
||||
Routing --> Pentest & JS & Browser & Pwn & Firmware & EDR
|
||||
Routing --> CTF
|
||||
|
||||
Pentest --> SrcHunter
|
||||
APK -->|.so 分流| IDA
|
||||
APK -->|.so 分流| R2
|
||||
PatchDiff -->|写出 PoC| Pwn
|
||||
Firmware -->|找到 crash| Pwn
|
||||
Pwn -->|整合| Pentest
|
||||
EDR -->|投递阶段| Pentest
|
||||
JS -->|浏览器操作| Browser
|
||||
|
||||
Bootstrap --> Discovery --> ToolIndex
|
||||
|
||||
APK & IDA & R2 & Pentest & JS -->|任务完成| Review
|
||||
Review --> Docs
|
||||
Docs --> Diagram
|
||||
Docs --> Journal
|
||||
```
|
||||
|
||||
## Bootstrap 自举流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Need[检测到缺少工具] --> ReadManifest[读取 bootstrap-manifest.json]
|
||||
ReadManifest --> Kind{安装类型?}
|
||||
|
||||
Kind -->|github-release-zip| GH[从 GitHub Release<br/>下载 ZIP 解压]
|
||||
Kind -->|pip-package| Pip[pip install]
|
||||
Kind -->|npm-mcp| NPM[npx 启动 + 注册 MCP]
|
||||
Kind -->|npm-global| Global[npm install -g<br/>+ postInstall]
|
||||
Kind -->|winget-package| Winget[winget install]
|
||||
Kind -->|local-http-mcp| HTTP[注册 URL + 启动服务]
|
||||
|
||||
GH & Pip & NPM & Global & Winget & HTTP --> Verify{验证可用?}
|
||||
Verify -->|成功| AddPath[加入 PATH<br/>刷新 tool-index]
|
||||
Verify -->|失败| Manual[输出手动安装引导]
|
||||
|
||||
AddPath --> Continue([继续执行任务])
|
||||
Manual --> Wait([等待用户确认])
|
||||
```
|
||||
|
||||
## 渗透测试循环
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Init[初始化:确定目标/范围/工具] --> Loop
|
||||
|
||||
subgraph Loop[核心循环]
|
||||
Align[1. 重新对齐目标] --> Review[2. 审查已知发现]
|
||||
Review --> Decide[3. 决定下一步操作]
|
||||
Decide --> Risk{4. 风险门控}
|
||||
Risk -->|低/中/高| Exec[5. 执行操作]
|
||||
Risk -->|严重| Ask[请求用户批准]
|
||||
Ask -->|批准| Exec
|
||||
Exec --> Record[6. 记录结果]
|
||||
Record --> Check{7. 自我检查}
|
||||
Check -->|继续| Align
|
||||
Check -->|完成| Done
|
||||
end
|
||||
|
||||
Done[8. 完成检查] --> Report([生成最终报告])
|
||||
```
|
||||
|
||||
## 自动进化机制
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Task([完成任务]) --> WriteLog[写入 field-journal<br/>踩坑+解决方案+代码]
|
||||
WriteLog --> UpdateIdx[更新 _index.md<br/>按场景分类]
|
||||
UpdateIdx --> CheckUpdate{需要更新系统?}
|
||||
|
||||
CheckUpdate -->|路由缺失| FixRoute[更新 routing.md]
|
||||
CheckUpdate -->|工具变化| FixTool[刷新 tool-index]
|
||||
CheckUpdate -->|新工具| FixManifest[更新 bootstrap-manifest]
|
||||
CheckUpdate -->|无需更新| Done([完成])
|
||||
|
||||
FixRoute & FixTool & FixManifest --> Done
|
||||
|
||||
NewTask([下次同类任务]) --> ReadIdx[读取 _index.md]
|
||||
ReadIdx --> Reuse[复用已有经验<br/>避免重复踩坑]
|
||||
```
|
||||
|
||||
## 多平台支持架构
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
subgraph 共享层["共享层(平台无关)"]
|
||||
Skills[skills/<br/>SKILL.md + routing.md + references]
|
||||
CTF[CTF-Sandbox-Orchestrator/<br/>40+ 子技能]
|
||||
Journal[field-journal/<br/>经验沉淀]
|
||||
Docs[docs-generator + diagram-generator]
|
||||
end
|
||||
|
||||
subgraph Windows["Windows 平台层"]
|
||||
WinScripts[skills/scripts/*.ps1<br/>PowerShell 脚本]
|
||||
WinManifest[bootstrap-manifest.json<br/>winget + GitHub ZIP]
|
||||
WinRules[RULES.md<br/>Windows 版规则]
|
||||
end
|
||||
|
||||
subgraph Kali["Kali Linux 平台层"]
|
||||
KaliScripts[kali/scripts/*.sh<br/>Bash 脚本]
|
||||
KaliManifest[kali/scripts/bootstrap-manifest.json<br/>apt + pip + GitHub tar]
|
||||
KaliRules[kali/RULES-kali.md<br/>Kali 版规则]
|
||||
end
|
||||
|
||||
Skills --> WinScripts & KaliScripts
|
||||
CTF --> WinScripts & KaliScripts
|
||||
Journal --> WinScripts & KaliScripts
|
||||
|
||||
WinScripts --> WinManifest
|
||||
KaliScripts --> KaliManifest
|
||||
|
||||
WinRules --> Skills
|
||||
KaliRules --> Skills
|
||||
```
|
||||
|
||||
### 平台选择逻辑
|
||||
|
||||
| 环境 | 使用的规则文件 | 使用的脚本 | 包管理 |
|
||||
|------|--------------|-----------|--------|
|
||||
| Windows | `RULES.md` | `skills/scripts/*.ps1` | winget / GitHub Release ZIP |
|
||||
| Kali Linux | `kali/RULES-kali.md` | `kali/scripts/*.sh` | apt / pip / npm / GitHub tar.gz |
|
||||
|
||||
### Kali 版特点
|
||||
|
||||
- **大量工具预装**:nmap、sqlmap、hashcat、hydra、metasploit、radare2、binwalk、burpsuite 等无需 bootstrap
|
||||
- **apt 统一管理**:不需要 winget、不需要手动解压 ZIP
|
||||
- **bash 原生**:脚本更简洁,无 PowerShell 依赖
|
||||
- **路径规范**:`/usr/bin/`、`/opt/`、`~/tools/`,无盘符和空格问题
|
||||
|
||||
## 文件读取时序图
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 用户
|
||||
participant AI as AI客户端
|
||||
participant R as RULES.md / RULES-kali.md
|
||||
participant SK as SKILL.md
|
||||
participant RT as routing.md
|
||||
participant TI as tool-index.md
|
||||
participant FJ as field-journal
|
||||
participant SUB as 子skill
|
||||
participant BS as bootstrap
|
||||
participant DOC as docs-generator
|
||||
|
||||
U->>AI: 提出安全任务
|
||||
AI->>R: 读取路由规则
|
||||
AI->>SK: 读取总控入口
|
||||
AI->>RT: 路由匹配
|
||||
AI->>FJ: 查同类经验
|
||||
AI->>TI: 确认工具状态
|
||||
alt 工具缺失
|
||||
AI->>BS: 自动安装(.ps1 或 .sh)
|
||||
BS-->>AI: 结果
|
||||
end
|
||||
AI->>SUB: 进入工作流
|
||||
AI-->>U: 任务结果
|
||||
AI->>DOC: 生成报告
|
||||
AI->>FJ: 回写经验
|
||||
AI-->>U: 完成
|
||||
```
|
||||
215
reverse-skill-repo/docs/OVERVIEW.md
Normal file
215
reverse-skill-repo/docs/OVERVIEW.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# Cybersecurity Skills Router Overview
|
||||
|
||||
> A workflow router and tool orchestration system for code Agents: classify the task, choose the right Skill, then call real tools to execute.
|
||||
|
||||
If this is your first time seeing this repository, start here. `README_AI.md` contains the AI Agent bootstrap entry with execution instructions.
|
||||
|
||||
## What is this?
|
||||
|
||||
Cybersecurity Skills Router is a **Skill Router + Tool Orchestration** system for code Agents such as Claude Code, Codex CLI, Cursor, Cline, Windsurf, and Kiro.
|
||||
|
||||
It helps an Agent handle APKs, binaries, frontend JavaScript, HTTP traffic, CTF challenges, firmware, and security-testing tasks through a repeatable workflow:
|
||||
|
||||
1. classify the target and user intent;
|
||||
2. route to the right Skill and methodology;
|
||||
3. check local tools, MCP servers, and script entry points;
|
||||
4. call real tools to perform the analysis;
|
||||
5. generate reports and write reusable experience back into the field journal.
|
||||
|
||||
In short:
|
||||
|
||||
> This is not a single-tool installer. It is a workflow operating system for making AI Agents execute security and reverse-engineering tasks with less guessing and more structure.
|
||||
|
||||
## Why does it exist?
|
||||
|
||||
General-purpose code Agents often struggle with security and reverse-engineering workflows:
|
||||
|
||||
- they do not know whether to use jadx, apktool, Frida, IDA, radare2, or BurpSuite;
|
||||
- APK, ELF, JS, PCAP, and CTF tasks require different playbooks;
|
||||
- tools, MCP servers, and local scripts are scattered across machines;
|
||||
- the same mistakes get repeated because experience is not reused;
|
||||
- the Agent may explain a lot while never entering the actual execution path.
|
||||
|
||||
This project turns that chaos into a clear execution chain:
|
||||
|
||||
```text
|
||||
User task
|
||||
↓
|
||||
RULES.md
|
||||
↓
|
||||
Skill Router
|
||||
↓
|
||||
Scenario-specific Skill
|
||||
↓
|
||||
Tools / MCP / Scripts
|
||||
↓
|
||||
Report + field journal
|
||||
```
|
||||
|
||||
## Core capabilities
|
||||
|
||||
| Capability | Description |
|
||||
|---|---|
|
||||
| Skill Router | Routes tasks by target type, user intent, and toolchain requirements. |
|
||||
| Tool Orchestration | Connects jadx, apktool, Frida, radare2, IDA, BurpSuite, browsers, and scripts. |
|
||||
| MCP Integration | Exposes BurpSuite, IDA, browser analysis, and other execution surfaces to Agents. |
|
||||
| Bootstrap Scripts | Detects local tool status and guides automatic or manual setup. |
|
||||
| Field Journal | Stores reusable lessons, commands, pitfalls, and patterns after tasks. |
|
||||
| Report Generation | Produces analysis reports, diagrams, attack paths, and CTF writeups. |
|
||||
|
||||
## Platform support
|
||||
|
||||
| Platform | Status | Entry |
|
||||
|---|---|---|
|
||||
| Windows | Full primary path | `README.md`, PowerShell scripts |
|
||||
| Kali Linux | Specialized support | `kali/README-kali.md` |
|
||||
| Ubuntu / Debian Linux | Generic support | `platforms/linux.md`, `skills/scripts/bootstrap-reverse.sh`, `skills/scripts/refresh-tool-index.sh` |
|
||||
| macOS | Generic support | `platforms/macos.md`, `skills/scripts/bootstrap-reverse.sh`, `skills/scripts/refresh-tool-index.sh` |
|
||||
|
||||
See [PLATFORMS.md](PLATFORMS.md) for the full platform matrix. Ordinary Linux and macOS users can list bootstrap capabilities with:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh --list
|
||||
```
|
||||
|
||||
For index refresh only, run:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
## Supported Agent clients
|
||||
|
||||
- Claude Code
|
||||
- Codex CLI
|
||||
- Cursor
|
||||
- Cline
|
||||
- Windsurf
|
||||
- Kiro
|
||||
- Other code Agents that support project rules, system prompts, MCP, or external tools
|
||||
|
||||
The repository is not tied to one client. Its core assets are `RULES.md`, `skills/SKILL.md`, `skills/routing.md`, tool indexes, sub-skills, and MCP/script entry points.
|
||||
|
||||
## Supported scenarios
|
||||
|
||||
| Scenario | Main entry |
|
||||
|---|---|
|
||||
| APK / Android analysis | `skills/apk-reverse/`, `skills/mobile-reverse/` |
|
||||
| Binary reverse engineering | `skills/ida-reverse/`, `skills/radare2/`, `skills/reverse-engineering/` |
|
||||
| Frontend JS signing / parameter analysis | `skills/js-reverse/` |
|
||||
| HTTP traffic / request replay | BurpSuite MCP, anything-analyzer, browser automation |
|
||||
| CTF / security competitions | `CTF-Sandbox-Orchestrator/` |
|
||||
| Firmware / IoT analysis | `skills/firmware-pentest/` |
|
||||
| Patch diff / N-day analysis | `skills/patch-diff-exploit/` |
|
||||
| Security-testing toolchain | `skills/pentest-tools/` |
|
||||
| LLM / Agent security | `skills/llm-security/` |
|
||||
| Reports and diagrams | `skills/docs-generator/`, `skills/diagram-generator/` |
|
||||
|
||||
## Example workflow
|
||||
|
||||
User request:
|
||||
|
||||
```text
|
||||
Analyze the signature verification logic in this APK.
|
||||
```
|
||||
|
||||
Expected Agent behavior:
|
||||
|
||||
1. identify the task as APK / Android / signature verification;
|
||||
2. route to `apk-reverse`, and optionally pivot to Frida or native `.so` analysis;
|
||||
3. check whether jadx, apktool, adb, and Frida are available;
|
||||
4. unpack the APK and inspect Manifest, Java code, and native libraries;
|
||||
5. decide whether static analysis is enough or dynamic hooks are needed;
|
||||
6. report verification locations, call chains, bypass ideas, and validation steps;
|
||||
7. generate a report and write reusable lessons into the field journal.
|
||||
|
||||
## Repository layout
|
||||
|
||||
```text
|
||||
.
|
||||
├── README.md # Main entry (English)
|
||||
├── README_zh.md # Main entry (Chinese)
|
||||
├── README_AI.md # AI Agent bootstrap entry (English)
|
||||
├── RULES.md # Global routing and execution rules
|
||||
├── docs/OVERVIEW.md # Detailed overview (English)
|
||||
├── docs/OVERVIEW_zh.md # Detailed overview (Chinese)
|
||||
├── docs/ARCHITECTURE.md # Architecture notes
|
||||
├── docs/PLATFORMS.md # Platform support matrix
|
||||
├── skills/ # Main Skill directory
|
||||
│ ├── SKILL.md # Controller entry
|
||||
│ ├── routing.md # Routing matrix
|
||||
│ ├── field-journal/ # Experience journal
|
||||
│ ├── apk-reverse/
|
||||
│ ├── js-reverse/
|
||||
│ ├── reverse-engineering/
|
||||
│ ├── ida-reverse/
|
||||
│ ├── radare2/
|
||||
│ └── ...
|
||||
├── CTF-Sandbox-Orchestrator/ # CTF scenario sub-skills
|
||||
├── burp-mcp-full/ # BurpSuite MCP control module
|
||||
└── kali/ # Kali helper scripts
|
||||
```
|
||||
|
||||
## Quick start
|
||||
|
||||
### For humans
|
||||
|
||||
1. Read this overview to understand the project;
|
||||
2. read `README.md` and let your Agent run the bootstrap flow;
|
||||
3. configure MCP, project rules, or system instructions for your client;
|
||||
4. validate routing with a real task.
|
||||
|
||||
### For AI Agents
|
||||
|
||||
If you are an AI Agent, do not stop at this overview. Enter the execution path:
|
||||
|
||||
1. read `README_AI.md`;
|
||||
2. execute section 0;
|
||||
3. read `RULES.md`;
|
||||
4. load `skills/SKILL.md` and `skills/routing.md`;
|
||||
5. route first, then execute.
|
||||
|
||||
## How is this different from a prompt pack?
|
||||
|
||||
A prompt pack usually gives the model advice. This project emphasizes executable structure:
|
||||
|
||||
- clear entries: `RULES.md`, `SKILL.md`, `routing.md`;
|
||||
- scenario routing: different targets enter different Skills;
|
||||
- execution surfaces: MCP, scripts, and local toolchains;
|
||||
- experience feedback: completed tasks update reusable knowledge;
|
||||
- migration support: rescan tool indexes and recover the workflow on a new machine.
|
||||
|
||||
It is designed to make the Agent guess less, skip less, and execute more reliably.
|
||||
|
||||
## Security and responsible use
|
||||
|
||||
This project is intended for authorized security research, reverse engineering, CTFs, teaching labs, internal security testing, and defensive validation. Make sure you have permission to analyze or test the target system.
|
||||
|
||||
Rules in the bootstrap README are meant to reduce repeated confirmation loops and workflow stalling in authorized environments. They do not encourage unauthorized access, destructive operations, or attacks against real targets.
|
||||
|
||||
## Project positioning
|
||||
|
||||
A concise way to explain the project:
|
||||
|
||||
> I designed and open-sourced a Skill Router for code Agents that turns reverse-engineering, security-testing, and CTF tasks into routable, executable, and reusable workflows, with MCP/script integrations for local tools.
|
||||
|
||||
Keywords: AI Agent, Skill Router, Tool Orchestration, MCP, Workflow Automation, Security Analysis, Field Journal.
|
||||
|
||||
## Related documents
|
||||
|
||||
- [README.md](../README.md): Main entry (English)
|
||||
- [README_zh.md](../README_zh.md): Main entry (Chinese)
|
||||
- [README_AI.md](../README_AI.md): AI bootstrap entry
|
||||
- [OVERVIEW_zh.md](OVERVIEW_zh.md): Chinese overview
|
||||
- [PLATFORMS.md](PLATFORMS.md): platform support matrix
|
||||
- [platforms/linux.md](platforms/linux.md): generic Linux setup
|
||||
- [platforms/macos.md](platforms/macos.md): macOS setup
|
||||
- [RULES.md](../RULES.md): global execution rules
|
||||
- [ARCHITECTURE.md](ARCHITECTURE.md): architecture notes
|
||||
- [skills/routing.md](../skills/routing.md): routing matrix
|
||||
- [burp-mcp-full/README.md](../burp-mcp-full/README.md): BurpSuite MCP module
|
||||
|
||||
## License
|
||||
|
||||
MIT License. See [LICENSE](../LICENSE).
|
||||
|
||||
213
reverse-skill-repo/docs/OVERVIEW_zh.md
Normal file
213
reverse-skill-repo/docs/OVERVIEW_zh.md
Normal file
@@ -0,0 +1,213 @@
|
||||
# Cybersecurity Skills Router 概览
|
||||
|
||||
> 面向代码 Agent 的安全任务路由与工具编排系统:先判断任务,再选择 Skill,最后调用真实工具执行。
|
||||
|
||||
如果你是第一次看到这个仓库,请先读这份文档。`README_AI.md` 是给 AI Agent 执行 bootstrap 的入口。
|
||||
|
||||
## 这个项目是什么
|
||||
|
||||
Cybersecurity Skills Router 是一套面向 Claude Code、Codex CLI、Cursor、Cline、Windsurf 等代码 Agent 的 **Skill Router + Tool Orchestration** 系统。
|
||||
|
||||
它让 Agent 在处理 APK、二进制、前端 JS、HTTP 抓包、CTF、固件、安全测试等复杂任务时,不再直接猜命令,而是:
|
||||
|
||||
1. 先根据目标类型和用户意图完成路由;
|
||||
2. 再进入对应 Skill 的方法论和工作流;
|
||||
3. 检查本机工具、MCP 服务和脚本入口;
|
||||
4. 调用真实工具执行分析;
|
||||
5. 任务结束后生成报告,并把可复用经验沉淀回 field journal。
|
||||
|
||||
简短地说:
|
||||
|
||||
> 这不是一个单工具安装包,而是一套让 AI Agent 稳定执行安全 / 逆向任务的工作流操作系统。
|
||||
|
||||
## 为什么需要它
|
||||
|
||||
普通代码 Agent 在安全和逆向任务中很容易失控:
|
||||
|
||||
- 遇到 APK、ELF、JS、PCAP、CTF 时不知道该走哪条分析链;
|
||||
- 不知道什么时候用 jadx、apktool、Frida、IDA、radare2、BurpSuite;
|
||||
- 工具路径、MCP 服务、脚本入口分散在不同机器上,迁移困难;
|
||||
- 同类问题每次重新踩坑,经验无法复用;
|
||||
- 输出大量解释,但没有真正进入工具执行。
|
||||
|
||||
本项目的目标是把这些问题收敛成一条明确的执行链:
|
||||
|
||||
```text
|
||||
用户任务
|
||||
↓
|
||||
RULES.md
|
||||
↓
|
||||
Skill Router
|
||||
↓
|
||||
目标场景 Skill
|
||||
↓
|
||||
工具 / MCP / 脚本
|
||||
↓
|
||||
报告 + field journal
|
||||
```
|
||||
|
||||
## 核心能力
|
||||
|
||||
| 能力 | 说明 |
|
||||
|---|---|
|
||||
| Skill Router | 根据目标类型、用户意图、工具链需求,把任务分发到对应 Skill。 |
|
||||
| Tool Orchestration | 整合 jadx、apktool、Frida、radare2、IDA、BurpSuite、浏览器工具等执行面。 |
|
||||
| MCP Integration | 通过 MCP 或本地桥接,把 BurpSuite、IDA、浏览器分析等能力暴露给 Agent。 |
|
||||
| Bootstrap Scripts | 检测本机工具状态,必要时给出自动安装或人工补齐路径。 |
|
||||
| Field Journal | 把完成过的任务、踩坑、命令和模式沉淀成可复用经验。 |
|
||||
| Report Generation | 任务完成后生成分析报告、攻击路径图、流程图或 CTF writeup。 |
|
||||
|
||||
## 平台支持
|
||||
|
||||
| 平台 | 状态 | 入口 |
|
||||
|---|---|---|
|
||||
| Windows | 完整主线 | `README.md`、PowerShell 脚本 |
|
||||
| Kali Linux | 专项适配 | `kali/README-kali.md` |
|
||||
| Ubuntu / Debian Linux | 通用适配 | `platforms/linux.md`、`skills/scripts/bootstrap-reverse.sh`、`skills/scripts/refresh-tool-index.sh` |
|
||||
| macOS | 通用适配 | `platforms/macos.md`、`skills/scripts/bootstrap-reverse.sh`、`skills/scripts/refresh-tool-index.sh` |
|
||||
|
||||
平台总览见 [PLATFORMS.md](PLATFORMS.md)。普通 Linux / macOS 用户建议先查看能力列表:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh --list
|
||||
```
|
||||
|
||||
只刷新工具索引时运行:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
## 支持的 Agent 客户端
|
||||
|
||||
- Claude Code
|
||||
- Codex CLI
|
||||
- Cursor
|
||||
- Cline
|
||||
- Windsurf
|
||||
- Kiro
|
||||
- 其他支持项目规则、system prompt、MCP 或外部工具调用的代码 Agent
|
||||
|
||||
本项目不绑定某一个客户端。它的核心资产是 `RULES.md`、`skills/SKILL.md`、`skills/routing.md`、工具索引、子 Skill 和 MCP / 脚本入口。
|
||||
|
||||
## 支持场景
|
||||
|
||||
| 场景 | 主要入口 |
|
||||
|---|---|
|
||||
| APK / Android 分析 | `skills/apk-reverse/`、`skills/mobile-reverse/` |
|
||||
| 二进制逆向 | `skills/ida-reverse/`、`skills/radare2/`、`skills/reverse-engineering/` |
|
||||
| JS 参数 / 前端签名分析 | `skills/js-reverse/` |
|
||||
| HTTP 抓包 / 请求重放 | BurpSuite MCP、anything-analyzer、browser automation |
|
||||
| CTF / 安全竞赛 | `CTF-Sandbox-Orchestrator/` |
|
||||
| 固件 / IoT 分析 | `skills/firmware-pentest/` |
|
||||
| 补丁差分 / N-day 分析 | `skills/patch-diff-exploit/` |
|
||||
| 安全测试工具链 | `skills/pentest-tools/` |
|
||||
| LLM / Agent 安全 | `skills/llm-security/` |
|
||||
| 报告和图表 | `skills/docs-generator/`、`skills/diagram-generator/` |
|
||||
|
||||
## 示例工作流
|
||||
|
||||
用户输入:
|
||||
|
||||
```text
|
||||
帮我分析这个 APK 的签名校验逻辑。
|
||||
```
|
||||
|
||||
期望 Agent 行为:
|
||||
|
||||
1. 识别任务类型:APK / Android / 签名校验;
|
||||
2. 路由到 `apk-reverse`,必要时分流到 Frida 或 native `.so` 分析;
|
||||
3. 检查 jadx、apktool、adb、Frida 是否可用;
|
||||
4. 解包 APK,提取 Manifest、Java 层逻辑和 native library;
|
||||
5. 判断静态分析是否足够,必要时生成动态 hook 方案;
|
||||
6. 输出签名校验位置、关键调用链、绕过思路和验证步骤;
|
||||
7. 任务完成后生成报告,并将可复用经验写入 field journal。
|
||||
|
||||
## 仓库结构
|
||||
|
||||
```text
|
||||
.
|
||||
├── README.md # 主入口(英文)
|
||||
├── README_zh.md # 主入口(中文)
|
||||
├── README_AI.md # AI Agent bootstrap 入口(英文)
|
||||
├── RULES.md # 全局路由与执行规则
|
||||
├── docs/OVERVIEW.md # 详细概览(英文)
|
||||
├── docs/OVERVIEW_zh.md # 详细概览(中文)
|
||||
├── docs/ARCHITECTURE.md # 架构说明
|
||||
├── docs/PLATFORMS.md # 平台支持总览
|
||||
├── skills/ # 主 Skill 目录
|
||||
│ ├── SKILL.md # 总控入口
|
||||
│ ├── routing.md # 路由矩阵
|
||||
│ ├── field-journal/ # 经验沉淀
|
||||
│ ├── apk-reverse/
|
||||
│ ├── js-reverse/
|
||||
│ ├── reverse-engineering/
|
||||
│ ├── ida-reverse/
|
||||
│ ├── radare2/
|
||||
│ └── ...
|
||||
├── CTF-Sandbox-Orchestrator/ # CTF 场景子技能库
|
||||
├── burp-mcp-full/ # BurpSuite MCP 控制模块
|
||||
└── kali/ # Kali 环境辅助脚本
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 人类用户
|
||||
|
||||
1. 先读本文件,理解项目定位;
|
||||
2. 再读 `README.md`,让 AI Agent 执行 bootstrap;
|
||||
3. 根据你的客户端配置 MCP、Rules 或项目级指令;
|
||||
4. 用一个真实任务验证路由是否生效。
|
||||
|
||||
### AI Agent
|
||||
|
||||
如果你是 AI Agent,不要停在概览。请进入执行入口:
|
||||
|
||||
1. 读取 `README_AI.md`;
|
||||
2. 执行其中的第 0 节;
|
||||
3. 读取 `RULES.md`;
|
||||
4. 加载 `skills/SKILL.md` 和 `skills/routing.md`;
|
||||
5. 先路由,再执行。
|
||||
|
||||
## 和普通 Prompt 包有什么区别
|
||||
|
||||
普通 Prompt 包通常只给模型一段建议。这个项目更强调可执行结构:
|
||||
|
||||
- 有明确入口:`RULES.md`、`SKILL.md`、`routing.md`;
|
||||
- 有场景分流:不同目标进入不同 Skill;
|
||||
- 有工具执行面:MCP、脚本、本地工具链;
|
||||
- 有经验回写:任务完成后沉淀可复用经验;
|
||||
- 有迁移机制:换机器后重新扫描工具索引,恢复执行能力。
|
||||
|
||||
它不是让 Agent “知道更多”,而是让 Agent “少猜、少跳步、能落地执行”。
|
||||
|
||||
## 安全与使用边界
|
||||
|
||||
本项目用于授权环境中的安全研究、逆向分析、CTF、教学实验、内部安全测试和防护验证。请确保你对目标系统拥有合法授权。
|
||||
|
||||
主 README 中的安全相关规则用于减少已授权实验环境中的重复确认和流程空转,不代表鼓励未授权访问、破坏性操作或真实目标攻击。
|
||||
|
||||
## 项目定位
|
||||
|
||||
如果你需要向人解释这个项目,可以这样概括:
|
||||
|
||||
> 独立设计并开源了一套面向代码 Agent 的安全任务 Skill Router,将逆向、安全测试、CTF 等复杂任务拆成可路由、可执行、可沉淀的工作流,并通过 MCP 和脚本把本地工具链接入 Agent。
|
||||
|
||||
关键词:AI Agent、Skill Router、Tool Orchestration、MCP、Workflow Automation、Security Analysis、Field Journal。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [README.md](../README.md):主入口(中文)
|
||||
- [README_AI.md](../README_AI.md):AI bootstrap 入口(英文)
|
||||
- [PLATFORMS.md](PLATFORMS.md):平台支持总览
|
||||
- [platforms/linux.md](platforms/linux.md):普通 Linux 适配
|
||||
- [platforms/macos.md](platforms/macos.md):macOS 适配
|
||||
- [RULES.md](../RULES.md):全局执行规则
|
||||
- [ARCHITECTURE.md](ARCHITECTURE.md):架构说明
|
||||
- [skills/routing.md](../skills/routing.md):路由矩阵
|
||||
- [burp-mcp-full/README.md](../burp-mcp-full/README.md):BurpSuite MCP 模块
|
||||
|
||||
## License
|
||||
|
||||
MIT License. See [LICENSE](../LICENSE).
|
||||
|
||||
127
reverse-skill-repo/docs/PACKAGE-SECURITY-AUDIT.md
Normal file
127
reverse-skill-repo/docs/PACKAGE-SECURITY-AUDIT.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# reverse-skill 包内安全审计(可执行面)
|
||||
|
||||
> 日期:2026-08-02
|
||||
> 范围:`skills/**/scripts`、`skills/scripts`、`kali/scripts`、`burp-mcp-full` 可执行脚本与 bootstrap 清单
|
||||
> **不含**:`src-hunter` / payloader 等**教学型 payload 文档**(其 DROP/注入样例属方法论,非自动执行)
|
||||
|
||||
## 结论(总评)
|
||||
|
||||
| 级别 | 判定 |
|
||||
|------|------|
|
||||
| **后门 / 主动删库 / 格式化磁盘** | **未发现** |
|
||||
| **管道下载执行(curl\|sh / IEX DownloadString)** | **未发现** |
|
||||
| **硬编码云密钥 / 私钥** | **未发现**(文档中的 `sk-` / `BEGIN RSA` 为检测示例) |
|
||||
| **供应链残余风险** | **已部分加固(中低→低)**:钉死 `@latest`;GitHub 下载支持 **manifest SHA256 + API digest** |
|
||||
|
||||
**总评:可执行 skill 脚本面当前未发现植入式后门或「一键删库」逻辑;危险删除均限定在工具重装临时目录 / case 输出目录。**
|
||||
|
||||
### 2026-07-18 加固(本提交)
|
||||
|
||||
| 项 | 动作 |
|
||||
|----|------|
|
||||
| jshookmcp | `@latest` → `@0.3.4` |
|
||||
| pentestswarm | `@latest` / docker `:latest` → `@v0.1.0` / `:v0.1.0` |
|
||||
| jadx | pin `v1.5.6` + `assetSha256` |
|
||||
| apktool | pin `v3.0.2` + `assetSha256` |
|
||||
| bootstrap PS/sh | 下载后 `Assert-DownloadedFileIntegrity` / `verify_sha256`;优先 manifest 哈希,其次 GitHub `digest`;失败删文件并中止 |
|
||||
| 未钉哈希的 release | 仍可安装,但 **WARN** 并打印实际 sha256 |
|
||||
|
||||
### 2026-08-02 安全修复
|
||||
|
||||
| 项 | 修复 |
|
||||
|----|------|
|
||||
| Kali quick setup | 使用 `getent` 解析 sudo 用户 home,移除 `eval` |
|
||||
| Frida process listing | 使用 `frida-ps` 参数数组,移除内联 Python 代码拼接 |
|
||||
| Burp MCP token | 使用受限临时文件原子替换,POSIX 文件权限固定为 `0600` |
|
||||
| Burp MCP bridge | 按 MCP 换行消息解析,并在 Burp 启动后按需重连 |
|
||||
| Anything Analyzer MCP | bootstrap 默认启用 bearer auth,并通过可选宿主适配器注册凭据 |
|
||||
| IDA MCP startup | 逐个结束旧进程,避免多 PID 参数展开错误 |
|
||||
|
||||
## 扫描方法
|
||||
|
||||
对可执行扩展(`.ps1` / `.sh` / `.py` / `.js` / `.java`)检索:
|
||||
|
||||
- `Invoke-Expression` / `IEX` / `FromBase64String` / `DownloadString`
|
||||
- `curl|bash` / `wget|sh` 管道执行
|
||||
- `DROP DATABASE|TABLE`、`rm -rf /`、`Remove-Item ... C:\Windows`
|
||||
- 反弹 shell 形态(`/dev/tcp` 滥用、`TcpClient` 回连)
|
||||
- 隐藏窗口启动(复核用途)
|
||||
|
||||
第二轮:人工阅读 `bootstrap-reverse.ps1/.sh` 下载与删除路径、`mcp-bridge.js`、图表/密码学 Python 脚本。
|
||||
|
||||
## 发现明细
|
||||
|
||||
### 1. 删除操作(均为预期清理,非删库)
|
||||
|
||||
| 位置 | 行为 | 风险 |
|
||||
|------|------|------|
|
||||
| `bootstrap-reverse.ps1` `Expand-ArchiveIntoDirectory` | 删除目标安装目录后重装;删除 `%TEMP%\reverse-bootstrap-*` | 仅工具安装路径,非用户业务库 |
|
||||
| `bootstrap-reverse.ps1` anything-analyzer | 失败时 `Remove-Item node_modules` 后 `pnpm install` | 限定克隆的工具仓 |
|
||||
| `apk-reverse/scripts/decode.*` | 清理任务输出目录 jadx/apktool out | 限定 task 根 |
|
||||
| `case-init.ps1` | 清理临时目录 | 临时 |
|
||||
| `bootstrap-reverse.sh` | 同类 temp / 安装目标清理 | 同左 |
|
||||
|
||||
**未发现** 针对 `C:\`、系统目录、任意数据库连接串上的 `DROP`/`TRUNCATE` 可执行逻辑。
|
||||
|
||||
### 2. 网络行为(工具自举,非 C2)
|
||||
|
||||
| 位置 | 行为 | 说明 |
|
||||
|------|------|------|
|
||||
| `bootstrap-reverse.ps1` | `api.github.com` 拉 release;`Invoke-WebRequest` 下 zip/jar | 仓库名来自 **manifest 白名单** |
|
||||
| `bootstrap-reverse.sh` | `curl` / `git clone` / `pipx` / `npm` | 同上 |
|
||||
| `mcp-bridge.js` | 仅 `127.0.0.1:9876` HTTP → Burp | 本地环回 |
|
||||
| `ToolDiscovery.ps1` | 探测 `http://host:port/mcp` | 健康检查 |
|
||||
| `kali/.../tool-discovery.sh` | `(echo >/dev/tcp/$host/$port)` | **端口探测**,非反弹 shell |
|
||||
|
||||
### 3. 隐藏窗口
|
||||
|
||||
| 位置 | 用途 |
|
||||
|------|------|
|
||||
| `bootstrap-reverse.ps1` `Start-Process ... -WindowStyle Hidden` | 后台启动 `pnpm dev`(anything-analyzer) |
|
||||
| `ida-reverse/scripts/start.ps1` | 启动 IDA 相关进程(需保持后台) |
|
||||
|
||||
属服务启动形态,未发现隐藏下载恶意载荷。
|
||||
|
||||
### 4. 文档 / payload 中的「危险字样」(非自动执行)
|
||||
|
||||
`pentest-tools/src-hunter`、`attack-chain` 等 **Markdown/JSON 教学材料** 含 SQL 注入、`DROP` 示例、日志清理 **红队方法论**。
|
||||
这些 **不会被 bootstrap 或 master-route 自动执行**;执行依赖 AI/人工在**已授权 scope** 下选用。
|
||||
|
||||
相关约束见:`ops/scope-contract.md`、`ops/skill-supply-chain.md`、`field-journal/precedent-*.md`。
|
||||
|
||||
### 5. 供应链残余风险(建议后续加固,非已证实后门)
|
||||
|
||||
| 项 | 风险 | 建议 |
|
||||
|----|------|------|
|
||||
| `bootstrap-manifest.json` 中 `@jshookmcp/jshook@0.3.4`、`pentestswarm@v0.1.0` | 标签漂移 / 供应链投毒面 | 钉死版本号 + 校验和 |
|
||||
| GitHub release zip **无 SHA256 校验** | 被替换 release 时难以及时发现 | manifest 增加 `assetSha256` 并在 bootstrap 校验 |
|
||||
| `npm install -g` / `pip` 默认源 | 依赖生态固有风险 | 仅装 manifest 能力;生产环境用私有源/锁定 |
|
||||
|
||||
## 可执行脚本清单(审计基线)
|
||||
|
||||
```
|
||||
skills/scripts/*.ps1|*.sh + lib/ToolDiscovery.ps1
|
||||
skills/apk-reverse/scripts/*
|
||||
skills/radare2/scripts/*
|
||||
skills/ida-reverse/scripts/*
|
||||
skills/browser-automation/scripts/*
|
||||
skills/diagram-generator/scripts/*.py
|
||||
skills/case-review/scripts/*.py
|
||||
kali/scripts/*
|
||||
burp-mcp-full/mcp-bridge.js (+ Java 扩展源)
|
||||
```
|
||||
|
||||
## 建议的持续检查
|
||||
|
||||
```powershell
|
||||
# 可执行面快速体检(示例)
|
||||
rg -n "Invoke-Expression|FromBase64String|DownloadString|rm -rf /|DROP DATABASE" skills/scripts skills/*/scripts kali/scripts burp-mcp-full -g "*.ps1" -g "*.sh" -g "*.py" -g "*.js"
|
||||
```
|
||||
|
||||
新增 skill 的 **可执行脚本** 合入前应再跑本清单;仅 Markdown 方法论变更不强制。
|
||||
|
||||
## 签署
|
||||
|
||||
- 审计执行:仓库本地静态扫描 + 关键路径人工复核
|
||||
- 结果:无后门 / 无自动删库;供应链加固列为后续改进项
|
||||
'@
|
||||
104
reverse-skill-repo/docs/PLATFORMS.md
Normal file
104
reverse-skill-repo/docs/PLATFORMS.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# Platform Support
|
||||
|
||||
This project uses a layered platform model:
|
||||
|
||||
1. **Core knowledge layer**: `skills/`, `RULES.md`, `routing.md`, and `CTF-Sandbox-Orchestrator/`. This layer is platform-agnostic.
|
||||
2. **Execution layer**: scripts, local tools, MCP servers, and path conventions. This layer is platform-specific.
|
||||
3. **Client layer**: Claude Code, Codex CLI, Cursor, Cline, Windsurf, Kiro, or any Agent client that can load rules and call tools.
|
||||
|
||||
## Support matrix
|
||||
|
||||
| Platform | Status | Primary entry | Notes |
|
||||
|---|---|---|---|
|
||||
| Windows | Full primary path | `README.md`, PowerShell scripts | Original mainline. Uses `.ps1`, Windows paths, `winget` / GitHub release ZIPs. |
|
||||
| Kali Linux | Full specialized path | `kali/README-kali.md` | Dedicated Kali layer with `apt`, bash scripts, and Kali-native security tooling. |
|
||||
| Ubuntu / Debian Linux | Supported generic path | `docs/platforms/linux.md`, `skills/scripts/bootstrap-reverse.sh`, `skills/scripts/refresh-tool-index.sh` | Uses `apt`, `pipx` / venv, `npm`, GitHub releases, and optional Kali scripts as reference. |
|
||||
| macOS | Supported generic path | `docs/platforms/macos.md`, `skills/scripts/bootstrap-reverse.sh`, `skills/scripts/refresh-tool-index.sh` | Uses Homebrew, `pipx` / venv, `npm`, app bundle paths, and manual IDA / Burp setup. |
|
||||
|
||||
## What is shared across platforms
|
||||
|
||||
The following are not tied to a platform:
|
||||
|
||||
- `RULES.md`
|
||||
- `skills/SKILL.md`
|
||||
- `skills/routing.md`
|
||||
- most `SKILL.md` methodology files
|
||||
- `CTF-Sandbox-Orchestrator/`
|
||||
- MCP concepts and JSON configuration shape
|
||||
- `burp-mcp-full/mcp-bridge.js`
|
||||
- Java source under `burp-mcp-full/`
|
||||
|
||||
## What is platform-specific
|
||||
|
||||
The following must be adapted per OS:
|
||||
|
||||
- tool installation commands;
|
||||
- executable names and paths;
|
||||
- script language (`.ps1` vs `.sh`);
|
||||
- package managers (`winget`, `apt`, `brew`, `pipx`, `npm`);
|
||||
- desktop app locations such as IDA Pro and BurpSuite;
|
||||
- Android SDK / platform-tools paths;
|
||||
- MCP config file locations for each Agent client.
|
||||
|
||||
## Tool coverage by platform
|
||||
|
||||
| Capability | Windows | Kali Linux | Ubuntu / Debian | macOS | Notes |
|
||||
|---|---|---|---|---|---|
|
||||
| Java / JDK | Installer / winget | `apt` | `apt` | `brew` | Required by jadx, apktool, Burp. |
|
||||
| Node.js / npm / npx | Installer / winget | `apt` / `nvm` | `apt` / NodeSource / `nvm` | `brew` / `nvm` | Required for MCP bridges and JS tooling. |
|
||||
| Python | Installer | system Python + venv | system Python + venv | Homebrew Python + venv | Avoid global `pip` when PEP 668 is active. |
|
||||
| jadx | GitHub release | `apt` or GitHub release | GitHub release preferred | `brew install jadx` | Ubuntu apt may not provide it. |
|
||||
| apktool | release package | `apt` | `apt` or release jar | `brew install apktool` | Version can be old in apt. |
|
||||
| adb | Android SDK | `apt` / platform-tools | `apt install adb` or platform-tools | `brew install android-platform-tools` | Use official platform-tools if distro package is old. |
|
||||
| Frida | `pipx` / venv | `pipx` / venv | `pipx` / venv | `pipx` / venv | Package is usually `frida-tools`. |
|
||||
| radare2 | release / installer | `apt` / GitHub release | GitHub release preferred | `brew install radare2` | Ubuntu 22.04 apt may not have a candidate. |
|
||||
| Ghidra | manual / release | `apt` or release | GitHub release / Flatpak | `brew install --cask ghidra` or formula | Java required. |
|
||||
| IDA Pro | manual app | manual Linux app | manual Linux app | manual app bundle | Commercial tool; scripts only wrap local installs. |
|
||||
| BurpSuite | manual app | manual app / package | manual app | `brew install --cask burp-suite` | MCP extension still needs loading into Burp. |
|
||||
| Graphviz | installer | `apt` | `apt` | `brew` | Used by diagram generation. |
|
||||
| PlantUML | jar / package | `apt` | `apt` | `brew` | Optional diagram tool. |
|
||||
| Nmap | installer | `apt` | `apt` | `brew` | Security testing. |
|
||||
| sqlmap | Python / package | `apt` | `apt` / pipx | `brew` / pipx | Security testing. |
|
||||
| ffuf | release | `apt` / release | `apt` / release | `brew` | Fuzzing. |
|
||||
| hashcat | release | `apt` | `apt` | `brew` | GPU support differs by OS. |
|
||||
| nuclei | release / go | package / release | GitHub release / go | `brew install nuclei` | Often absent in Ubuntu apt. |
|
||||
| SecLists | Git clone | package / clone | Git clone | Git clone | Path convention differs by OS. |
|
||||
|
||||
## Recommended routing for setup docs
|
||||
|
||||
- Windows users: start from `README.md`.
|
||||
- Kali users: start from `kali/README-kali.md`.
|
||||
- Ubuntu / Debian users: start from `docs/platforms/linux.md`.
|
||||
- macOS users: start from `docs/platforms/macos.md`.
|
||||
- Kali users should use `kali/scripts/bootstrap-reverse.sh` and `kali/scripts/refresh-tool-index.sh`. Generic Linux/macOS users should use `skills/scripts/bootstrap-reverse.sh` and `skills/scripts/refresh-tool-index.sh`.
|
||||
|
||||
## Linux/macOS bootstrap and tool index
|
||||
|
||||
For generic Linux/macOS, list supported bootstrap capabilities:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh --list
|
||||
```
|
||||
|
||||
Install or configure capabilities with the same capability names as the Windows PowerShell version:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh jadx apktool frida
|
||||
bash skills/scripts/bootstrap-reverse.sh jshookmcp anything-analyzer
|
||||
bash skills/scripts/bootstrap-reverse.sh idapro --start-services
|
||||
```
|
||||
|
||||
Refresh the local tool index only:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
This writes:
|
||||
|
||||
```text
|
||||
skills/tool-index.md
|
||||
skills/tool-index.json
|
||||
```
|
||||
|
||||
The generic Bash bootstrap uses the same core capability names as the Windows PowerShell version. Kali has a dedicated Bash bootstrap that covers those core names plus Kali-native extras. Refresh scripts only detect tools and suggest platform-appropriate installation commands. Use the platform guides for setup and manual-only tools.
|
||||
20
reverse-skill-repo/docs/RELEASE-CHECKLIST.md
Normal file
20
reverse-skill-repo/docs/RELEASE-CHECKLIST.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# 发布 Checklist
|
||||
|
||||
> 每次发版前逐项核对。版本事实源:VERSION 文件必须与 CHANGELOG.md 最新发布版本一致(CI ersion-check job 自动校验,不一致会红)。
|
||||
|
||||
## 发版步骤
|
||||
|
||||
1. [ ] 确认 CHANGELOG.md 的 [Unreleased] 段内容齐全(Keep a Changelog 分组:Added / Fixed / Security / Removed)
|
||||
2. [ ] 将 ## [Unreleased] 改为 ## [x.y.z] — YYYY-MM-DD,并把比较链接从 ...HEAD 更新到新 tag
|
||||
3. [ ] 同步更新 VERSION 文件为 x.y.z
|
||||
4. [ ] 里程碑版本(如 v1.0.0 / v1.1.0)同步更新 docs/RELEASE_NOTES_v<x.y.z>.md
|
||||
5. [ ] 打 tag:git tag v<x.y.z> + git push --tags
|
||||
6. [ ] 推送后确认 CI 全绿(routing 163 基准 + coherence + pin gate + version-check)
|
||||
|
||||
## 元数据同步(发版顺手项)
|
||||
|
||||
- 新增/删除 bootstrap 能力 → 同步 RULES.md / RULES_zh.md / skills/SKILL.md 的能力列表(以 skills/scripts/bootstrap-manifest.json 为唯一事实源,当前 24 项)
|
||||
- 新增 field-journal 条目 → 更新 skills/field-journal/_index.md 三处(场景分类 / 高频模式 / 实体倒排)与统计
|
||||
- 路由规则变更 → 只改 skills/config/routing.json(文档由生成脚本维护或至少保持一致)
|
||||
|
||||
> 注:journal 条目底部不再手工维护 <!-- [进化统计] --> 累计注释(已于 2026-08-10 移除,数字无法可靠维护),项目计数以 _index.md 为准。
|
||||
50
reverse-skill-repo/docs/RELEASE_NOTES_v1.0.0.md
Normal file
50
reverse-skill-repo/docs/RELEASE_NOTES_v1.0.0.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# reverse-skill v1.0.0
|
||||
|
||||
**First formal release** — 2026-07-18
|
||||
|
||||
AI-powered skill router for authorized reverse engineering, penetration testing, and security research.
|
||||
|
||||
## Highlights
|
||||
|
||||
| Area | What you get |
|
||||
|------|----------------|
|
||||
| **PRIMARY path** | `MASTER-ROUTING.md` + `master-route.ps1` → correct skill in one hop |
|
||||
| **Ops contracts** | Scope / auth gate, Evidence→Finding→Path, roles, timeline |
|
||||
| **Case tooling** | `case-init` · `case-guard` · `append-evidence` · `smoke` · `verify-routing-coherence` |
|
||||
| **Skill matrix** | 20+ modules (APK, IDA, r2, JS, .NET, pwn, firmware, pentest, LLM, …) |
|
||||
| **Bootstrap** | On-demand toolchain install from `bootstrap-manifest.json` |
|
||||
| **Knowledge loop** | `field-journal` + docs-generator completion checklist |
|
||||
| **Platforms** | Windows primary; Linux / macOS / Kali supported paths |
|
||||
|
||||
## Install (quick)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zhaoxuya520/reverse-skill.git
|
||||
cd reverse-skill
|
||||
# Windows
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/refresh-tool-index.ps1
|
||||
# Linux / macOS
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
Point your AI client at `RULES.md` / `README_AI.md`. See [README.md](../README.md).
|
||||
|
||||
## Verify
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/smoke.ps1
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/verify-routing-coherence.ps1
|
||||
```
|
||||
|
||||
## Breaking / intentional product boundary
|
||||
|
||||
- This pack is a **skill router + bootstrap + journal**, not a full host security platform.
|
||||
- Local tool paths live only in generated `tool-index` (not shipped in the tag content as absolute machine paths).
|
||||
|
||||
## Full changelog
|
||||
|
||||
See [CHANGELOG.md](../CHANGELOG.md#100--2026-07-18).
|
||||
|
||||
## License
|
||||
|
||||
MIT — see [LICENSE](../LICENSE).
|
||||
10
reverse-skill-repo/docs/assets/sponsors/atlas-cloud.svg
Normal file
10
reverse-skill-repo/docs/assets/sponsors/atlas-cloud.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 92" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Atlas Cloud</title>
|
||||
<desc id="desc">Atlas Cloud black wordmark</desc>
|
||||
<rect width="300" height="92" rx="10" fill="#ffffff"/>
|
||||
<g fill="#090b10">
|
||||
<path d="M20 64 43.5 20 67 64H56.7l-4.4-8.8H34.7L30.3 64H20Zm19-17.8h9L43.5 37 39 46.2Z"/>
|
||||
<path d="m43.5 20 9.7 18.3-5.1 10.2-4.6-9.1-9 17.9H23.8L43.5 20Z"/>
|
||||
</g>
|
||||
<text x="76" y="59" fill="#090b10" font-family="Inter,Segoe UI,Arial,sans-serif" font-size="31" font-weight="750" letter-spacing="-1.4">AtlasCloud</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 619 B |
23
reverse-skill-repo/docs/assets/star-history.svg
Normal file
23
reverse-skill-repo/docs/assets/star-history.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400" role="img" aria-label="GitHub Star History for zhaoxuya520/reverse-skill">
|
||||
<title>Star History — zhaoxuya520/reverse-skill</title>
|
||||
<rect width="100%" height="100%" fill="#ffffff"/>
|
||||
<text x="400" y="22" text-anchor="middle" font-size="15" font-weight="600" fill="#111827" font-family="system-ui,sans-serif">Star History — zhaoxuya520/reverse-skill</text>
|
||||
<text x="400" y="390" text-anchor="middle" font-size="10" fill="#9ca3af" font-family="system-ui,sans-serif">generated 2026-07-17 17:47 UTC · 8366 stars · 2026-05-15 → 2026-07-17</text>
|
||||
<line x1="56" y1="352.0" x2="776" y2="352.0" stroke="#e5e7eb" stroke-width="1"/>
|
||||
<text x="48" y="356.0" text-anchor="end" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">0</text>
|
||||
<line x1="56" y1="273.0" x2="776" y2="273.0" stroke="#e5e7eb" stroke-width="1"/>
|
||||
<text x="48" y="277.0" text-anchor="end" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">2301</text>
|
||||
<line x1="56" y1="194.0" x2="776" y2="194.0" stroke="#e5e7eb" stroke-width="1"/>
|
||||
<text x="48" y="198.0" text-anchor="end" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">4602</text>
|
||||
<line x1="56" y1="115.0" x2="776" y2="115.0" stroke="#e5e7eb" stroke-width="1"/>
|
||||
<text x="48" y="119.0" text-anchor="end" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">6902</text>
|
||||
<line x1="56" y1="36.0" x2="776" y2="36.0" stroke="#e5e7eb" stroke-width="1"/>
|
||||
<text x="48" y="40.0" text-anchor="end" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">9203</text>
|
||||
|
||||
<line x1="56" y1="36" x2="56" y2="352" stroke="#9ca3af" stroke-width="1.5"/>
|
||||
<line x1="56" y1="352" x2="776" y2="352" stroke="#9ca3af" stroke-width="1.5"/>
|
||||
<polyline fill="none" stroke="#2563eb" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round" points="56.0,352.0 69.1,351.9 82.2,345.3 95.3,338.2 108.4,336.9 121.5,336.4 134.5,334.2 147.6,330.6 160.7,328.0 173.8,324.4 186.9,320.2 200.0,317.1 213.1,315.4 226.2,313.1 239.3,311.6 252.4,309.4 265.5,307.4 278.5,305.1 291.6,301.9 304.7,300.8 317.8,300.0 330.9,294.1 344.0,292.2 357.1,290.4 370.2,289.0 383.3,285.4 396.4,282.7 409.5,281.2 422.5,277.0 435.6,274.8 448.7,247.9 461.8,216.4 474.9,170.8 488.0,136.7 501.1,130.5 514.2,127.4 527.3,120.8 540.4,116.0 553.5,112.4 566.5,109.5 579.6,107.0 592.7,105.8 605.8,105.1 618.9,99.8 632.0,94.2 645.1,92.3 658.2,90.7 671.3,89.2 684.4,81.1 697.5,74.0 710.5,72.7 723.6,70.9 736.7,69.5 749.8,68.1 762.9,66.6 776.0,64.7"/>
|
||||
<text x="56" y="380" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">2026-05-15</text>
|
||||
<text x="776" y="380" text-anchor="end" font-size="11" fill="#6b7280" font-family="system-ui,sans-serif">2026-07-17</text>
|
||||
<text x="776" y="50" text-anchor="end" font-size="12" fill="#2563eb" font-family="system-ui,sans-serif" font-weight="600">8366 ★</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
219
reverse-skill-repo/docs/platforms/linux.md
Normal file
219
reverse-skill-repo/docs/platforms/linux.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# Generic Linux Setup
|
||||
|
||||
This guide covers ordinary Linux distributions such as Ubuntu, Debian, Linux Mint, Pop!_OS, and other Debian-family systems. Kali Linux has a dedicated path: [`../../kali/README-kali.md`](../../kali/README-kali.md).
|
||||
|
||||
## Positioning
|
||||
|
||||
The core knowledge layer is platform-agnostic. On Linux, what changes is the execution layer:
|
||||
|
||||
- package manager: usually `apt`, sometimes distro-specific package managers;
|
||||
- Python isolation: prefer `pipx` or a venv because modern systems may enforce PEP 668;
|
||||
- GUI apps: BurpSuite, IDA Pro, Ghidra paths differ by installation method;
|
||||
- security tools: distro packages may be old or absent, so GitHub releases are often preferred.
|
||||
|
||||
## Quick setup baseline
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y \
|
||||
git curl wget ca-certificates unzip tar jq \
|
||||
python3 python3-venv python3-pip pipx \
|
||||
openjdk-17-jdk nodejs npm \
|
||||
graphviz plantuml nmap sqlmap ffuf hashcat binwalk
|
||||
|
||||
python3 -m pipx ensurepath
|
||||
```
|
||||
|
||||
> Ubuntu repository versions can be old. For Node.js, radare2, jadx, nuclei, and Ghidra, prefer the alternatives below when the distro package is missing or outdated.
|
||||
|
||||
## Tool installation matrix
|
||||
|
||||
| Capability | Preferred Linux setup | Alternative | Notes |
|
||||
|---|---|---|---|
|
||||
| Java / JDK | `sudo apt install openjdk-17-jdk` | SDKMAN / vendor JDK | Required by jadx, apktool, BurpSuite, Ghidra. |
|
||||
| Node.js | NodeSource or `nvm` | distro `nodejs npm` | Distro Node can be old; MCP servers often prefer recent Node. |
|
||||
| Python tools | `pipx install <tool>` | project venv | Avoid global `pip install` on PEP 668 systems. |
|
||||
| jadx | GitHub release ZIP | custom install under `~/tools/jadx` | Ubuntu apt may not have `jadx`. |
|
||||
| apktool | `sudo apt install apktool` | official `apktool.jar` + wrapper | Distro package may be old. |
|
||||
| adb | `sudo apt install adb` | official Android platform-tools | Use official platform-tools for latest devices. |
|
||||
| Frida | `pipx install frida-tools` | venv + `pip install frida-tools` | Provides `frida`, `frida-ps`, `frida-trace`. |
|
||||
| radare2 | GitHub release / build from source | distro package when available | Ubuntu 22.04 may not provide a candidate. |
|
||||
| Ghidra | GitHub release ZIP | Flatpak / distro package | Java required. |
|
||||
| IDA Pro | manual Linux installer | — | Commercial tool; set `IDADIR` or document local path. |
|
||||
| BurpSuite | manual installer / jar | distro package if available | Load `burp-mcp-full` extension manually. |
|
||||
| jshookmcp | `npx -y @jshookmcp/jshook@0.3.4` | MCP config command | Requires Node/npm/npx. |
|
||||
| anything-analyzer | project clone + `pnpm install` | custom local service | Register its MCP endpoint in the Agent client. |
|
||||
| nuclei | GitHub release / `go install` | distro package if available | Often absent in Ubuntu apt. |
|
||||
| SecLists | `git clone https://github.com/danielmiessler/SecLists ~/tools/SecLists` | distro package if available | Keep path in tool index. |
|
||||
|
||||
## Recommended path layout
|
||||
|
||||
```text
|
||||
~/tools/
|
||||
├── jadx/
|
||||
├── ghidra/
|
||||
├── SecLists/
|
||||
├── android-platform-tools/
|
||||
└── anything-analyzer/
|
||||
|
||||
~/.local/bin/ # pipx / user scripts
|
||||
/opt/idapro/ # optional IDA Pro install
|
||||
/usr/bin/ # distro packages
|
||||
```
|
||||
|
||||
## Installing common tools
|
||||
|
||||
### jadx from GitHub release
|
||||
|
||||
```bash
|
||||
mkdir -p ~/tools/jadx
|
||||
curl -L https://github.com/skylot/jadx/releases/latest/download/jadx-1.5.5.zip -o /tmp/jadx.zip
|
||||
unzip -q /tmp/jadx.zip -d ~/tools/jadx
|
||||
export PATH="$HOME/tools/jadx/bin:$PATH"
|
||||
jadx --version
|
||||
```
|
||||
|
||||
If the release filename changes, download the latest Linux/ZIP asset from <https://github.com/skylot/jadx/releases>.
|
||||
|
||||
### Frida via pipx
|
||||
|
||||
```bash
|
||||
pipx install frida-tools
|
||||
frida --version
|
||||
frida-ps --version
|
||||
```
|
||||
|
||||
### radare2
|
||||
|
||||
Prefer the official release or source install when the distro package is absent:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/radareorg/radare2 ~/tools/radare2-src
|
||||
cd ~/tools/radare2-src
|
||||
sys/install.sh
|
||||
r2 -v
|
||||
```
|
||||
|
||||
### Ghidra
|
||||
|
||||
```bash
|
||||
mkdir -p ~/tools/ghidra
|
||||
# Download latest release from https://github.com/NationalSecurityAgency/ghidra/releases
|
||||
# unzip ghidra_*.zip into ~/tools/ghidra
|
||||
```
|
||||
|
||||
### Android platform-tools alternative
|
||||
|
||||
```bash
|
||||
mkdir -p ~/tools/android-platform-tools
|
||||
# Download platform-tools-latest-linux.zip from Android Developers
|
||||
# unzip into ~/tools/android-platform-tools
|
||||
export PATH="$HOME/tools/android-platform-tools/platform-tools:$PATH"
|
||||
adb version
|
||||
```
|
||||
|
||||
## MCP setup notes
|
||||
|
||||
### BurpSuite MCP
|
||||
|
||||
Build the extension:
|
||||
|
||||
```bash
|
||||
cd burp-mcp-full
|
||||
chmod +x build.sh
|
||||
./build.sh
|
||||
```
|
||||
|
||||
Then load the generated jar in BurpSuite:
|
||||
|
||||
```text
|
||||
Burp Suite → Extensions → Add → Java → build/libs/burp-mcp-full.jar
|
||||
```
|
||||
|
||||
MCP stdio bridge example:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"burpsuite": {
|
||||
"command": "node",
|
||||
"args": ["/absolute/path/to/reverse-skill/burp-mcp-full/mcp-bridge.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### jshookmcp
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"jshook": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@jshookmcp/jshook@0.3.4"],
|
||||
"env": {
|
||||
"JSHOOK_BASE_PROFILE": "search"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Bootstrap capabilities and refresh tool index
|
||||
|
||||
From the repository root, list all bootstrap capabilities:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh --list
|
||||
```
|
||||
|
||||
Install/configure capabilities with the same core names as the Windows version:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh jadx apktool frida
|
||||
bash skills/scripts/bootstrap-reverse.sh jshookmcp anything-analyzer
|
||||
bash skills/scripts/bootstrap-reverse.sh idapro --start-services
|
||||
```
|
||||
|
||||
Refresh the tool index only:
|
||||
|
||||
```bash
|
||||
bash skills/scripts/bootstrap-reverse.sh --list
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
This generates:
|
||||
|
||||
```text
|
||||
skills/tool-index.md
|
||||
skills/tool-index.json
|
||||
```
|
||||
|
||||
The bootstrap script installs or configures supported capabilities where possible using the same core capability names as Windows. The refresh script detects common Linux/macOS tools and records install hints. Manual-only tools such as IDA Pro and BurpSuite still require local installation and app-specific setup.
|
||||
|
||||
## Validation checklist
|
||||
|
||||
```bash
|
||||
java -version
|
||||
python3 --version
|
||||
node -v
|
||||
npm -v
|
||||
npx -v
|
||||
jadx --version || true
|
||||
apktool --version || true
|
||||
adb version || true
|
||||
frida --version || true
|
||||
r2 -v || true
|
||||
ghidraRun 2>/dev/null || true
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
## When to use Kali docs instead
|
||||
|
||||
Use [`../../kali/README-kali.md`](../../kali/README-kali.md) when:
|
||||
|
||||
- the host is actually Kali;
|
||||
- you want Kali-native security tooling and MCP integrations;
|
||||
- you need Metasploit, NetExec, responder, BloodHound, Certipy, HexStrike, or other offensive-security distributions pre-wired.
|
||||
|
||||
For Ubuntu / Debian, keep this generic Linux guide as the default and only borrow Kali scripts when the tool is known to exist on your system.
|
||||
214
reverse-skill-repo/docs/platforms/macos.md
Normal file
214
reverse-skill-repo/docs/platforms/macos.md
Normal file
@@ -0,0 +1,214 @@
|
||||
# macOS Setup
|
||||
|
||||
This guide covers macOS users who want to use Cybersecurity Skills Router with Claude Code, Codex CLI, Cursor, Cline, Windsurf, Kiro, or another Agent client.
|
||||
|
||||
## Positioning
|
||||
|
||||
The core Skill layer is platform-agnostic. On macOS, the main differences are:
|
||||
|
||||
- package manager: Homebrew is preferred;
|
||||
- Python tools: use `pipx` or venv rather than global `pip`;
|
||||
- GUI apps: BurpSuite, IDA Pro, and Ghidra may live under `/Applications`;
|
||||
- Android tooling: `android-platform-tools` is available through Homebrew;
|
||||
- some Linux security tools may need GitHub releases, Go, or manual setup.
|
||||
|
||||
## Quick setup baseline
|
||||
|
||||
```bash
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
brew install \
|
||||
git curl wget jq unzip gnu-tar \
|
||||
python node openjdk \
|
||||
jadx apktool android-platform-tools \
|
||||
radare2 graphviz plantuml \
|
||||
nmap sqlmap ffuf hashcat binwalk
|
||||
|
||||
python3 -m pip install --user pipx
|
||||
python3 -m pipx ensurepath
|
||||
```
|
||||
|
||||
> Homebrew package names can change over time. If a formula is missing, use the alternative path in the tool matrix below.
|
||||
|
||||
## Tool installation matrix
|
||||
|
||||
| Capability | Preferred macOS setup | Alternative | Notes |
|
||||
|---|---|---|---|
|
||||
| Java / JDK | `brew install openjdk` | Temurin / vendor JDK | Required by jadx, apktool, BurpSuite, Ghidra. |
|
||||
| Node.js | `brew install node` | `nvm` | Required by MCP bridges and JS tools. |
|
||||
| Python tools | `pipx install <tool>` | venv | Avoid polluting global Python. |
|
||||
| jadx | `brew install jadx` | GitHub release ZIP | Provides `jadx` and `jadx-gui`. |
|
||||
| apktool | `brew install apktool` | official jar + wrapper | Java required. |
|
||||
| adb | `brew install android-platform-tools` | Android Studio SDK | Provides `adb`. |
|
||||
| Frida | `pipx install frida-tools` | venv + `pip install frida-tools` | Provides `frida`, `frida-ps`, `frida-trace`. |
|
||||
| radare2 | `brew install radare2` | GitHub release / source | CLI reverse-engineering. |
|
||||
| Ghidra | `brew install ghidra` or `brew install --cask ghidra` | GitHub release ZIP | Formula/cask availability may vary. |
|
||||
| IDA Pro | manual app install | — | Usually under `/Applications/IDA Professional*.app`. |
|
||||
| BurpSuite | `brew install --cask burp-suite` | manual jar / installer | Load `burp-mcp-full` extension manually. |
|
||||
| jshookmcp | `npx -y @jshookmcp/jshook@0.3.4` | MCP config command | Requires Node/npm/npx. |
|
||||
| anything-analyzer | project clone + `pnpm install` | custom local service | Register its MCP endpoint. |
|
||||
| nuclei | `brew install nuclei` | GitHub release / Go install | Optional security scanner. |
|
||||
| SecLists | Git clone | — | Usually clone to `~/tools/SecLists`. |
|
||||
|
||||
## Recommended path layout
|
||||
|
||||
```text
|
||||
~/tools/
|
||||
├── SecLists/
|
||||
├── anything-analyzer/
|
||||
└── custom-releases/
|
||||
|
||||
/Applications/
|
||||
├── Burp Suite*.app
|
||||
├── IDA Professional*.app
|
||||
└── Ghidra*.app
|
||||
|
||||
/opt/homebrew/bin/ # Apple Silicon Homebrew
|
||||
/usr/local/bin/ # Intel Homebrew
|
||||
~/.local/bin/ # pipx / user scripts
|
||||
```
|
||||
|
||||
## Installing common tools
|
||||
|
||||
### Frida via pipx
|
||||
|
||||
```bash
|
||||
pipx install frida-tools
|
||||
frida --version
|
||||
frida-ps --version
|
||||
```
|
||||
|
||||
### SecLists
|
||||
|
||||
```bash
|
||||
mkdir -p ~/tools
|
||||
git clone https://github.com/danielmiessler/SecLists ~/tools/SecLists
|
||||
```
|
||||
|
||||
### anything-analyzer
|
||||
|
||||
```bash
|
||||
mkdir -p ~/tools
|
||||
git clone https://github.com/Mouseww/anything-analyzer ~/tools/anything-analyzer
|
||||
cd ~/tools/anything-analyzer
|
||||
corepack enable
|
||||
pnpm install
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
If the service uses a custom port or token, update your Agent client's MCP configuration accordingly.
|
||||
|
||||
## MCP setup notes
|
||||
|
||||
### BurpSuite MCP
|
||||
|
||||
Build the extension:
|
||||
|
||||
```bash
|
||||
cd burp-mcp-full
|
||||
chmod +x build.sh
|
||||
./build.sh
|
||||
```
|
||||
|
||||
Load the generated jar in BurpSuite:
|
||||
|
||||
```text
|
||||
Burp Suite → Extensions → Add → Java → build/libs/burp-mcp-full.jar
|
||||
```
|
||||
|
||||
MCP stdio bridge:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"burpsuite": {
|
||||
"command": "node",
|
||||
"args": ["/absolute/path/to/reverse-skill/burp-mcp-full/mcp-bridge.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### IDA Pro
|
||||
|
||||
IDA Pro is commercial and must be installed manually. Common locations:
|
||||
|
||||
```text
|
||||
/Applications/IDA Professional.app
|
||||
/Applications/IDA Free.app
|
||||
/Applications/IDA Pro *.app
|
||||
```
|
||||
|
||||
If you use IDA MCP, document the actual app path in your client rules or local environment. Do not hard-code another user's path.
|
||||
|
||||
### jshookmcp
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"jshook": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@jshookmcp/jshook@0.3.4"],
|
||||
"env": {
|
||||
"JSHOOK_BASE_PROFILE": "search"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Bootstrap capabilities and refresh tool index
|
||||
|
||||
From the repository root, list the same core capability names as the Windows PowerShell bootstrap:
|
||||
|
||||
```bash
|
||||
/bin/bash skills/scripts/bootstrap-reverse.sh --list
|
||||
```
|
||||
|
||||
The generic bootstrap is compatible with the system `/bin/bash` shipped by macOS (Bash 3.2); Homebrew Bash is not required.
|
||||
|
||||
Install or configure supported capabilities with the generic Bash bootstrap:
|
||||
|
||||
```bash
|
||||
/bin/bash skills/scripts/bootstrap-reverse.sh jadx apktool frida
|
||||
/bin/bash skills/scripts/bootstrap-reverse.sh jshookmcp anything-analyzer
|
||||
/bin/bash skills/scripts/bootstrap-reverse.sh burpsuite-mcp
|
||||
```
|
||||
|
||||
Refresh the local tool index only:
|
||||
|
||||
```bash
|
||||
/bin/bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
This writes:
|
||||
|
||||
```text
|
||||
skills/tool-index.md
|
||||
skills/tool-index.json
|
||||
```
|
||||
|
||||
`bootstrap-reverse.sh` installs/configures supported capabilities where possible on macOS, using Homebrew, `pipx`, `npm`, GitHub releases, and MCP registration. `refresh-tool-index.sh` is detection-only. Manual-only tools such as IDA Pro and BurpSuite still require local app installation and app-specific setup.
|
||||
|
||||
## Validation checklist
|
||||
|
||||
```bash
|
||||
java -version
|
||||
python3 --version
|
||||
node -v
|
||||
npm -v
|
||||
npx -v
|
||||
jadx --version || true
|
||||
apktool --version || true
|
||||
adb version || true
|
||||
frida --version || true
|
||||
r2 -v || true
|
||||
brew list --formula | grep -E 'jadx|apktool|radare2|graphviz|plantuml' || true
|
||||
bash skills/scripts/refresh-tool-index.sh
|
||||
```
|
||||
|
||||
## macOS caveats
|
||||
|
||||
- GUI app paths vary by edition and version. Do not hard-code IDA or Burp paths unless you verified them locally.
|
||||
- Some security tools are Linux-first. Prefer Homebrew formulae first, then GitHub releases, then source builds.
|
||||
- iOS analysis may require additional signing, device, and jailbreak-specific setup; keep those steps in a dedicated mobile reverse Skill rather than this generic platform page.
|
||||
@@ -0,0 +1,82 @@
|
||||
# PR #43 / #37 / #36 / #23 本地审查与集成报告
|
||||
|
||||
- 日期:2026-08-08
|
||||
- 基线:`origin/main` at `6315d02`
|
||||
- 审查分支:`codex/review-pr-43-37-36-23`
|
||||
- 范围:只审查四个 PR 相对当前主线的增量价值;不执行外部目标动作
|
||||
- 结论:四个 PR 均有可复用价值,但只有 #43、#37 适合保留主体;#36、#23 必须选择性集成
|
||||
|
||||
## 执行摘要
|
||||
|
||||
| PR | 相对主线价值 | 集成决定 | 关键边界 |
|
||||
|---|---|---|---|
|
||||
| #43 | 很高 | 保留结构化路由、163 条当前回归基准、双平台 CI、供应链 pin gate、动态索引 | 删除 OpenCode 配置、安装器和专属代理;核心不绑定任何客户端 |
|
||||
| #37 | 高 | 合并 case-review、证据图审查、哈希校验与单测,并增加 R40 | 同时接受 `done` 与当前约定的 `completed` |
|
||||
| #36 | 中高 | 选择性合并 Burp 重连/换行消息处理、原子 token、Anything Analyzer 鉴权、进程树与 sudo home 修复 | 拒绝“所有能力一律 ready”等语义回退 |
|
||||
| #23 | 中(整包偏低) | 仅合并 Bash case-init、case-guard、结构化 Bash 路由和 CI parity | 排除 92 文件中的客户端清单、GIF、演示生成物和硬编码路由副本 |
|
||||
|
||||
## 平台边界
|
||||
|
||||
结构化路由的唯一事实源是 `skills/config/routing.json`。PowerShell 与 Bash 入口都读取该文件;宿主客户端只允许作为可选适配器存在,不能决定仓库身份、路由规则、测试基准或安装路径。
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
C["任意宿主 / CLI / Agent"] --> A["可选适配层"]
|
||||
A --> R["routing.json 单一事实源"]
|
||||
P["PowerShell router"] --> R
|
||||
B["Bash router"] --> R
|
||||
R --> S["41 条路由 / 42 个已跟踪技能模块"]
|
||||
R --> T["163 条回归基准"]
|
||||
T --> W["Windows CI"]
|
||||
T --> L["Linux CI"]
|
||||
```
|
||||
|
||||
## 审查发现与修正
|
||||
|
||||
1. #43 的设计价值来自结构化数据与自动门禁,而不是 OpenCode 接入。所有 OpenCode 专属文件与 CI job 已移除。
|
||||
2. #37 原实现只识别 `done`,会把主线使用的 `completed` 误判为未完成;已补兼容与第 7 条单测。
|
||||
3. #36 的桥接重连和 token 写入是净增益;其能力状态改写会制造假阳性,未合并。
|
||||
4. #23 的 Bash router 原样复制硬编码表,会立刻与 #43 的 R40/priority 漂移;已重写为读取 `routing.json`,并在 CI 校验 R1/R3/R40 parity。
|
||||
5. 新 supply-chain gate 暴露 Kali manifest 的 7 个浮动安装源。已固定 Frida 14.10.4、IDA MCP commit、Agent Browser 0.31.1、ProxyCat commit、Nuclei v3.8.0、pwntools 4.15.0,并让安装命令实际使用这些 pin。
|
||||
6. 推送后强制复审发现 Bash `case-init` 未继承 CaseName 路径约束;已拒绝路径、控制字符、通配符与尾随点/空格,并加入负向 CI。
|
||||
7. Bash 的授权 URL 曾错误落入 `offline` 且可能 ready;已与 PowerShell 对齐为 `authorized_target_only`,明确 offline 只接受本地样本。
|
||||
8. Bash `case-guard` 现只从 `auth`、`network_profile`、`signoff` 对应章节取值,notes/证据中的伪字段不能通过门禁。
|
||||
9. Kali ProxyCat 固定源码安装现会生成可探测的 `~/.local/bin/proxycat` wrapper;CI checkout 也从可变 tag 固定到 v4.2.2 commit。
|
||||
10. 原动态 INDEX 在开发机误收录了 12 个 `.gitignore` 排除的本地模块,干净 clone 会失败;生成器现只枚举 Git 已跟踪 skill,clean clone 与带私有扩展的工作区都稳定为 42 个核心模块。
|
||||
|
||||
## 相对旧主线的量化提升
|
||||
|
||||
使用同一组 163 条基准分别调用旧主线硬编码 router 与新结构化 router,每条均在独立 PowerShell 进程运行:
|
||||
|
||||
| 版本 | 通过 | 准确率 | 无输出 |
|
||||
|---|---:|---:|---:|
|
||||
| 旧主线 `6315d02` | 137 / 163 | 84.05% | 0 |
|
||||
| 当前结构化实现 | 163 / 163 | 100% | 0 |
|
||||
|
||||
绝对增加 26 条正确路由、提升 15.95 个百分点。改善覆盖 Frida/Android、证书与 root 检测、抓包重放、勒索软件、Burp/Metasploit、Go 二进制、BLE、USB、native `.so`、内存 dump 等旧实现会回退 R0 的场景。
|
||||
|
||||
## 验证结果
|
||||
|
||||
| 验证项 | 结果 |
|
||||
|---|---|
|
||||
| 结构化路由全量回归 | 163 / 163 通过 |
|
||||
| 路由一致性与供应链 pin gate | 通过 |
|
||||
| PowerShell smoke | 通过 |
|
||||
| P0 friction / scope-guard 回归 | 通过 |
|
||||
| 旧版/新版 163 条 A/B | 137/163 → 163/163 |
|
||||
| case-review Python 单测 | 7 / 7 通过 |
|
||||
| Burp bridge Node 回归 | 1 / 1 通过 |
|
||||
| Bash router/case-init/case-guard parity | 通过 |
|
||||
| PowerShell、Bash 语法与 JSON 解析 | 通过 |
|
||||
| Java 编译检查 | Gradle 8.7 分发下载被本机证书吊销网络阻塞;改用 Maven Central 的声明依赖与 JDK 21,`McpHttpServer.java` 编译通过 |
|
||||
|
||||
## 剩余风险
|
||||
|
||||
- Bash 结构化路由依赖 Python 3;这是显式运行依赖,但避免了第二份路由表。
|
||||
- 固定依赖版本需要周期性、显式升级,不再隐式追随 `latest`。
|
||||
- 客户端适配仍可继续扩展,但必须保持核心数据与测试完全宿主无关。
|
||||
- 本机未完成 Gradle task 层测试;原因是 128 MB wrapper 分发下载受证书吊销网络与低速链路阻塞,已用同版本依赖完成改动 Java 源文件的独立编译检查。
|
||||
|
||||
## 最终建议
|
||||
|
||||
合并当前审查分支的选择性结果,不合并四个 PR 的原始整包形态。后续 PR 应按“核心路由 / 宿主适配 / 演示资产 / 文档”拆分,便于独立审查与回滚。
|
||||
@@ -0,0 +1,44 @@
|
||||
# 2026-08-08 开放 PR 价值评估与合并报告
|
||||
|
||||
## 结论
|
||||
|
||||
基于最新 `origin/main` 审查 8 个开放 PR。本轮合并 #59、#19、#22、#29;暂缓 #43、#37、#36、#23。合并后的 smoke 与 routing coherence 检查均通过。
|
||||
|
||||
## 评估结果
|
||||
|
||||
| PR | 价值 | 风险/状态 | 决策 |
|
||||
|---|---|---|---|
|
||||
| #59 | Rust cdylib 差分复现方法完整,可复用性高 | 仅 journal 与索引,无可执行代码 | 合并 |
|
||||
| #19 | Windows 24H2 工具链兼容经验覆盖广 | 仅 journal 与索引 | 合并 |
|
||||
| #22 | Electron/Bytenode/更新链分析方法完整 | 仅 journal 与索引 | 合并 |
|
||||
| #29 | Next.js 双 API serializer 与契约重建经验完整 | 仅 journal 与索引 | 合并 |
|
||||
| #43 | 路由单一事实源、回归基准、CI 与版本固定价值很高;客户端接入只能作为可选适配层 | 38 文件、与主线 4 个关键文件冲突,原提案含 OpenCode 专用配置 | 暂缓,建议 rebase 后专项审查;不得让核心绑定 OpenCode |
|
||||
| #37 | evidence graph/case review 能补齐交付审计 | 与主线路由校验和文档冲突 | 暂缓,建议 rebase 后运行其单测 |
|
||||
| #36 | MCP/自举安全加固方向正确 | 6 个关键文件冲突,部分能力已由近期主线吸收 | 暂缓,做差分去重 |
|
||||
| #23 | Bash parity 与展示材料有生态价值 | 92 文件、展示资产多、2 个脚本冲突 | 暂缓,建议拆分 PR |
|
||||
|
||||
## 决策图
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[开放 PR] --> B{仅文档与脱敏 journal?}
|
||||
B -->|是| C{内容完整且方法可复用?}
|
||||
C -->|是| D[合并并统一索引]
|
||||
C -->|否| E[要求补充]
|
||||
B -->|否| F{核心脚本冲突或变更面过大?}
|
||||
F -->|是| G[暂缓并要求 rebase/拆分]
|
||||
F -->|否| H[隔离运行测试后再决定]
|
||||
```
|
||||
|
||||
## 验证
|
||||
|
||||
- `skills/scripts/smoke.ps1`: ALL PASS(9 个脚本解析、8 个路由用例)。
|
||||
- `skills/scripts/verify-routing-coherence.ps1`: ALL ROUTING COHERENCE CHECKS PASSED。
|
||||
- 用户原有未提交 journal 在同步和合并期间通过 stash 隔离保存并恢复。
|
||||
|
||||
## 后续建议
|
||||
|
||||
1. 优先让 #43 rebase 到当前 `main`,重点复核 JSON 路由等价性、供应链 pin gate 与跨平台路径。
|
||||
2. 让 #37 单独 rebase,并运行 `skills/case-review/tests/test_review_case.py`。
|
||||
3. 对 #36 与已合并的安全修复逐文件比较,只提取尚未覆盖的测试或边界处理。
|
||||
4. 将 #23 拆成 Bash parity、插件元数据、演示资产三个独立 PR。
|
||||
Reference in New Issue
Block a user