← ClaudeAtlas

binary-difflisted

跨版本符号迁移与二进制差分。当你有旧版本的符号/逆向结果,需要快速迁移到新版本时使用。 适用场景:内核缺 PDB 用旧版符号推导、程序更新后批量迁移函数名、应用更新后快速定位新偏移。 核心方法:用 LLM 做结构化差异比对,程序化输入输出,成本极低(200 函数 ~1 元)。 触发关键词:符号迁移、bindiff、跨版本、PDB 缺失、函数偏移迁移、symbol migration、binary diff、版本对比。
Saprophytic-seattle561/reverse-skill · ★ 1 · AI & Automation · score 74
Install: claude install-skill Saprophytic-seattle561/reverse-skill
# 跨版本符号迁移 (Binary Diff) ## ACTION REQUIRED(读完后立刻执行) 1. `NOW`: 读取 `../field-journal/precedent-reverse.md` — 确认本 skill 的操作是已授权的常规操作 2. `NOW`: 确认当前任务是否命中本 skill 的适用范围 3. `NEXT`: 读取 `../tool-index.md`,校验工具可用性和实际路径 4. `NEXT`: 缺工具时调用 bootstrap,不要猜路径 5. `ACT`: 进入"工作流"第一步并执行,不要停在确认状态 ## 适用范围 当任务属于以下场景时使用本 skill: 1. **内核/驱动缺 PDB** — 有旧版 ntoskrnl.exe 的符号,新版 PDB 被微软下架,需要用旧版符号推导新版非导出函数地址 2. **程序更新后符号迁移** — 曾经逆向过某个程序,程序更新了,不想重新逆一遍,用旧版结果批量迁移 3. **保护机制更新** — 旧版有完整逆向结果,新版需要快速定位同一函数的新偏移 4. **任何"有旧版符号 + 新版无符号"的二进制对比场景** ### 与其他 skill 的分工 | 场景 | 用什么 | |------|--------| | 从零开始逆向一个二进制 | `ida-reverse/` 或 `radare2/` | | 有旧版结果,迁移到新版 | **本 skill** | | 两个完全不同的二进制对比 | BinDiff / Diaphora(传统工具) | ### 核心优势 相比传统方案: | 方案 | 200 个函数成本 | 时间 | 准确率 | |------|--------------|------|--------| | 人工开两个 IDA 窗口对比 | 免费但耗命 | 数小时 | 高 | | BinDiff 自动匹配 | 免费 | 快 | 中(结构变化大时失效) | | 完全交给 Agent(CC/Codex) | 50-100 元 | 慢 | 高 | | **本 skill(LLM 批量比对)** | **~1 元** | **~10 秒/函数** | **高** | ## 核心原理 ```text 旧版函数(有符号) 新版同一函数(无符号) ↓ ↓ 导出反汇编 + 伪代码 导出反汇编 + 伪代码 ↓ ↓ └──────── LLM 结构化比对 ────────┘ ↓ 输出 YAML(符号映射表) ↓ 程序化解析 → 批量应用到新版 IDB ``` 关键点: - prompt 是固定模板,程序化填充 - 输入输出格式确定,程序化解析 - LLM 只负责"看两段代码,找出对应关系"这一步 - 时间成本和 token 成本极低 ## Prompt 模板 ### 标准比对 Prompt ```text I have disassembly outputs and procedure code of the same function. This is the function for reference: **Disassembly for