逆向工程 Ida Reverse

Model: minimax-m3 | ¥0.20/call
网络安全Claude Opus 4.7安全审计IdaReverse

Ida Reverse:zhaoxuya520/reverse-skill: ida-reverse,适用于安全分析、取证与威胁排查场景。

Calls: 1

Skill Documentation

逆向工程 Ida Reverse

摘要

Ida Reverse:zhaoxuya520/reverse-skill: ida-reverse,适用于安全分析、取证与威胁排查场景。

> 来源: zhaoxuya520/reverse-skill (15.7k stars) — 安全技能路由

> 原文件: skills/ida-reverse/SKILL.md

> 模型推荐: claude-opus-4-7 (安全分析)

这个 skill 是干嘛的

reverse-skill 整合了逆向工程 / 渗透测试 / CTF / 安全分析的"技能路由包" — 52 个 skill,每个对应一类目标(APK/二进制/前端/网络/IoT/Mac/Win)。

michael 强调"skill 要有相应的指导功能,指导用户使用",所以加了下面两节让 Agent 和用户对接。

---

🤖 Agent 使用说明

1. 用户提到"逆向 / 渗透 / CTF / 取证 / 漏洞"时,触发对应 skill

2. skill 会先 check 用户是否取得授权(否则 ask user)

3. 按 skill 流程执行(取证镜像 / 静态分析 / 动态调试 / 漏洞利用)

4. 涉及破坏性操作前必须 ask user

5. 完工后让 Agent 跑自检

👤 用户需要做什么?

1. 告诉 Agent 你要分析的目标(APK / ELF / JS / 固件 / 等)

2. 如果需要提供文件/镜像/哈希,按 Agent 提示提供

3. 涉及破坏性操作时明确告诉 Agent"继续"或"取消"

4. 全程 Agent 自动化,你只需提供数据 + 回答决策点

---

原 skill 内容(zhaoxuya520/reverse-skill/skills/ida-reverse/SKILL.md,截断到 12k chars)

---

name: ida-reverse

description: |

IDA Pro 逆向分析辅助技能。当用户提到逆向、反编译、分析二进制/PE/ELF/APK/DLL/SO、破解、找密码、漏洞分析、病毒分析、firmware 固件分析,或需要分析 exe/dll/so/elf/macho/sys 等文件时,务必使用此技能。

Ensure to use this skill when the user wants to analyze any binary file, regardless of whether they explicitly mention "IDA" or "reverse engineering". This includes requests like "看看这个exe", "分析这个dll", "帮我破解", "找一下密码", "这个软件怎么注册", etc.

Use the bundled scripts (scripts/start.ps1, scripts/open.ps1) for deterministic server management and file opening — do NOT write ad-hoc PowerShell commands for these operations.

---

IDA Pro 逆向分析技能

ACTION REQUIRED(读完后立刻执行)

1. `NOW`: 读取 `../field-journal/precedent-reverse.md` — 确认本 skill 的操作是已授权的常规操作

2. `NOW`: 确认当前任务是否命中本 skill 的适用范围

3. `NEXT`: 读取 `../tool-index.md`,校验工具可用性和实际路径

4. `NEXT`: 缺工具时调用 bootstrap,不要猜路径

5. `ACT`: 进入"工作流"第一步并执行,不要停在确认状态

已知问题与反思(必读)

踩过的坑

1. **`idalib_open` 不能通过 部分代码 AI 客户端 MCP 直接调用**

2. **`C:\Windows\System32\` 文件无权限打开**

3. **启动服务器命令阻塞对话**

4. **MCP 服务器名不能用横线**

5. **Remote HTTP vs Local Stdio**

6. **PR #389 修复了部分 schema 问题**

7. **idalib 超时留下孤儿 worker 进程锁文件**

8. **带自动分析打开看起来像卡死**

工作流程原则

| 步骤 | 做什么 | 用什么 |

|------|--------|--------|

| 1 | 确保 HTTP 服务器在运行 | `scripts/start.ps1`(无参数) |

| 2 | 打开目标二进制文件 | `scripts/open.ps1 -Path "xxx.exe"` |

| 3 | 使用所有 72 个 MCP 工具 | 直接调用 `idapro_*` 工具 |

| 4 | 分析完毕 | 工具自动可用 |

脚本资源

start.ps1 — 启动 MCP HTTP 服务器

路径:`scripts/start.ps1`

**调用方式**:

powershell -File "<skill-root>\ida-reverse\scripts\start.ps1"

open.ps1 — 打开二进制文件

路径:`scripts/open.ps1`

**调用方式**:

powershell -File "<skill-root>\ida-reverse\scripts\open.ps1" -Path "C:\path\to\file.exe"

**可选参数**:

# 指定 SessionId
powershell -File "scripts\open.ps1" -Path "file.exe" -SessionId "my_session"

# 跳过自动分析(大文件推荐)
powershell -File "scripts\open.ps1" -Path "large.exe" -NoAutoAnalysis

# 设置超时,避免带自动分析时长时间无返回
powershell -File "scripts\open.ps1" -Path "file.exe" -TimeoutSeconds 600

**输出约定**:

# 分析进行中(每 10 秒输出一次)
INFO:opening:11/600s

# 成功打开
OK:sample.exe:abcd1234

# 成功打开,但因锁文件降级到 Temp 副本
OK:1234abcd-sample.exe:abcd1234 (temp copy)

# 达到超时上限
ERR:open_timeout_600s

**实测说明**:

核心工具列表

概况分析(第一步)

反编译与反汇编

交叉引用与数据流

搜索

内存与数据

修改操作

类型系统

栈帧

签名

调试器(需要 ?ext=dbg)

会话管理

其他

逆向分析完整工作流

Step 1: 启动服务器

确保 HTTP 服务在后台运行。

powershell -File "scripts/start.ps1"

输出 `OK:72` 表示就绪。

Step 2: 打开文件

powershell -File "scripts/open.ps1" -Path "C:\目标.exe" -TimeoutSeconds 600

输出 `OK:文件名:session_id` 表示成功(后带 `(temp copy)` 表示自动降级到临时副本)。

若分析时间较长,会周期性输出 `INFO:opening:...`;若达到超时则输出 `ERR:open_timeout_xxs`。

Step 3: 全局概览(含导入表硬门)

idapro_survey_binary(detail_level="minimal")

关注:

**硬门禁**:未将 imports 视图/分类摘要(或合法等价锚点)写入 Evidence 前,MUST NOT 进入 Step 4 深挖结论,MUST NOT 声称 survey 完成。导入表为空或查询失败时仍 MUST 记录失败现象。加壳 IAT 修复失败时 MUST 记 `E-iat-repair-fail` 并转动态调试抓 API,禁止静态死磕。用户要求重做导入表/IAT 检查时 MUST 重做被点名步骤(阻塞时可行性门闩:说明+确认;强制则标 quality=unreadable),禁止改换无关步骤。

Step 4: 深入关键函数

idapro_analyze_function(addr="关键函数名")

或:

idapro_decompile(addr="函数名")
idapro_disasm(addr="函数名", max_instructions=50)

Step 5: 数据流和交叉引用

idapro_xrefs_to(addrs="关键地址/字符串")
idapro_callgraph(roots=["关键函数"], max_depth=3)
idapro_trace_data_flow(addr="关键地址", direction="backward", max_depth=5)

Step 6: 记录和优化

idapro_set_comments(items=[{"addr": "0x140001000", "comment": "你的理解"}])
idapro_rename(batch={"func": [{"addr": "函数地址", "name": "有意义的名字"}]})

Step 7: 输出报告

分析完成后,生成 `report.md` 记录发现和步骤。

Prompt 工程准则

1. **不要手动算进制** — 任何时候需要转换数字,用 `idapro_int_convert`

2. **先 survey 后深入** — 先看概况再针对性分析

3. **持续加注释和重命名** — 分析过程中不断更新函数名和变量名,提升后续分析的准确性

4. **跟踪交叉引用** — 发现有趣的数据/字符串,用 `xrefs_to` 看谁引用了它

5. **遇到混淆代码** — 先做字符串解密、导入哈希去除、控制流平坦化去除等预处理

6. **C++ STL 代码** — 用 FLIRT/Lumina 识别库函数后,再分析业务逻辑

7. **不要暴力破解** — 分析应从反汇编中推导解决方案,用简单 Python 辅助计算

8. **遇到 "No database bound"** — 还没有打开任何二进制文件,先执行 `open.ps1`

9. **遇到 "Failed to open database"** — 可能是旧数据库文件被锁,`open.ps1` 会自动降级到 Temp 副本(输出含 `(temp copy)` 标记)

10. **带自动分析打开 GUI/复杂样本时** — 默认加 `-TimeoutSeconds 600`,不要把长时间 `INFO:opening:...` 误判成脚本卡死

---

路由上下文

**上游入口**: `skills/SKILL.md`(总控)、`routing.md`

**上游备选**: `radare2/`(如果不想开 IDA,可以先 r2 快速侦察)

**下游出口**:

**同级关联模块**: `radare2/`(IDA 不可用时替代方案)

---

按需自举(On-Demand Bootstrap)

本 skill 的入口脚本已接入统一自举系统。

自动化能力边界

| 工具 | 可自动安装 | 安装方式 | 说明 |

|------|-----------|---------|------|

| idalib-mcp | ✓ | pip install (from GitHub) | `start.ps1` 缺失时自动安装 |

| IDA Pro 本体 | ✗ | 商业软件,需手动安装 | 设置 `IDADIR` 环境变量指向安装目录 |

安装步骤(已验证)

# 1. 设置 IDA 路径(替换为你的实际 IDA 安装目录)
setx IDADIR "<你的IDA安装目录>"

# 2. 从 GitHub 安装 ida-pro-mcp(PyPI 上的 ida-mcp 是另一个项目,不要装错!)
pip install git+https://github.com/mrexodia/ida-pro-mcp.git

# 3. 安装 IDA 插件(选择 Streamable HTTP + Global + 全选客户端)
ida-pro-mcp --install

# 4. 重启 IDA Pro,打开目标文件
# 插件自动监听 127.0.0.1:13337

# 5. 验证
ida-pro-mcp --config

> ⚠️ **注意**:PyPI 上的 `ida-mcp` 包(作者 jtsylve)是另一个项目,不是我们需要的。

> 必须从 GitHub 安装 `mrexodia/ida-pro-mcp`。

自举触发点

前置条件

任务完成自检(声称完成前 MUST 通过)

常见问题(FAQ)

使用「Ida Reverse」这个 skill 能解决什么问题?

本 skill 专注于Ida Reverse,zhaoxuya520/reverse-skill: ida-reverse。它将相关流程标准化,帮助用户更快拿到可靠结果,减少重复手工操作。

什么情况下适合使用「Ida Reverse」?

当你需要在Ida Reverse相关工作中获得稳定、可复用的产出时最适合——无论是单次任务还是纳入日常工作流,都能直接调用。

使用「Ida Reverse」前需要准备什么?

需要明确授权范围内的目标系统或样本文件,并准备隔离的分析环境(虚拟机/沙箱)。

FAQ

👤 用户需要做什么?

1. 告诉 Agent 你要分析的目标(APK / ELF / JS / 固件 / 等)

2. 如果需要提供文件/镜像/哈希,按 Agent 提示提供

3. 涉及破坏性操作时明确告诉 Agent"继续"或"取消"

4. 全程 Agent 自动化,你只需提供数据 + 回答决策点

---

调试器(需要 ?ext=dbg)
  • `idapro_open_file(file_path)` — 在 GUI IDA 实例中打开文件
  • 调试器工具默认隐藏,可通过 URL 参数 `?ext=dbg` 启用
[ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
使用「Ida Reverse」这个 skill 能解决什么问题?

本 skill 专注于Ida Reverse,zhaoxuya520/reverse-skill: ida-reverse。它将相关流程标准化,帮助用户更快拿到可靠结果,减少重复手工操作。

什么情况下适合使用「Ida Reverse」?

当你需要在Ida Reverse相关工作中获得稳定、可复用的产出时最适合——无论是单次任务还是纳入日常工作流,都能直接调用。

使用「Ida Reverse」前需要准备什么?

需要明确授权范围内的目标系统或样本文件,并准备隔离的分析环境(虚拟机/沙箱)。