66 lines
2.5 KiB
Markdown
66 lines
2.5 KiB
Markdown
# RE Agent 工作流门闩(静态↔动态)
|
||
|
||
> 来源启发:binary-re 阶段划分、社区 RE skill(Frida/r2/Ghidra/IDA 循环)、Cerberus 三头环(静/动/插桩)
|
||
> 日期:2026-07-17
|
||
> 适用:`reverse-engineering/`、`ida-reverse/`、`radare2/`、与 cre 角色交接
|
||
|
||
## 0. 启动
|
||
|
||
```text
|
||
□ scope.md:offline 样本路径 或 授权设备/靶机
|
||
□ tool-index:file/strings/r2/ida/frida 等实际路径
|
||
□ 角色:cre(ops/role-map)
|
||
```
|
||
|
||
## 1. Triage(5–15 分钟)
|
||
|
||
```text
|
||
□ file / DIE / 熵 / 壳特征
|
||
□ strings / rabin2 -z 捡漏
|
||
□ 架构/链接/是否 .NET/Go/Rust/加壳
|
||
□ MUST 导入/导出表:rabin2 -i / -E(或 IDA imports / 等价物)
|
||
□ 产出:E-triage(MUST 含 imports 分类摘要:网络/文件/加密/注入/注册表)+ 假设清单(勿过早下结论)
|
||
```
|
||
|
||
**阶段门闩(Triage → Static/Dynamic)**:E-triage 中未记录 imports 摘要前,MUST NOT 进入 Dynamic,也 MUST NOT 声称「基础分诊完成」。导入表解析失败时仍 MUST 把失败输出写入 Evidence,不得跳过。用户要求「重做导入表检查」时 MUST 重做 imports 步骤本身,禁止改换其他分析步骤。
|
||
|
||
## 2. Static
|
||
|
||
| 工具 | 何时 |
|
||
|------|------|
|
||
| radare2 / rabin2 | 快速函数/导入/字符串(imports 已在 Triage MUST 完成) |
|
||
| IDA / Ghidra(MCP 或 headless) | 深挖、交叉引用、类型;survey 阶段复核 imports 分类 |
|
||
| jadx / dnSpy | Android / .NET |
|
||
| OLLVM 文档 | 控制流平坦化怀疑 |
|
||
|
||
```text
|
||
□ 确认 E-imports / E-triage 已含导入表 Evidence(缺失则先补,禁止后置)
|
||
□ 定位关键函数(加密/校验/网络/授权)
|
||
□ 记录地址/符号 → Evidence
|
||
□ 一条路不通 → 换工具(IDA?r2?Ghidra)
|
||
```
|
||
|
||
**无 MCP 时**:可用导出反编译文本再分析(对照 P4nda0s reverse-skills / IDA-NO-MCP 思路),仍写 Evidence 路径。
|
||
|
||
## 3. Dynamic
|
||
|
||
```text
|
||
□ Frida / gdb / emulator:验证静态假设
|
||
□ 反调试/反 Frida → reverse-engineering/anti-analysis
|
||
□ Android:root 检测 / SSL pinning 绕过脚本按需生成,**须在授权设备**
|
||
□ 崩溃日志驱动下一轮 hook(自适应循环)
|
||
```
|
||
|
||
## 4. Synthesis
|
||
|
||
```text
|
||
□ Finding:算法/校验逻辑/可利用点
|
||
□ Path:callflow 或 solve 步骤挂 E-*
|
||
□ 报告 docs-generator + 可选图
|
||
□ field-journal 脱敏
|
||
```
|
||
|
||
## 5. 与「堆 RE skill 插件」的差异
|
||
|
||
- 本包用 **阶段门闩 + tool-index**,不默认启用 Hex-Rays「unsafe 全自动执行」类插件
|
||
- 动态插桩默认 **offline/lab** network_profile |