Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions RULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,8 @@ After task completion (vulnerability verified / reverse complete / flag captured
| "I'll reply to user first, continue after confirmation" | **Don't wait for confirmation on deterministic steps.** Execute while informing user. Only pause at genuine decision points. |
| "I understand the rules, please tell me your task" | **This is the WORST failure mode.** Correct behavior: proactively match user intent to routing table, output analysis, start executing. |
| "User asked to redo import-table / step X, but I did something else more useful" | **Redo = redo the named step.** When user asks to redo X (e.g. import table check), MUST re-execute X and refresh its Evidence. FORBIDDEN to substitute another step or silently skip X. |
| "IAT repair keeps failing; I'll grind more static unpackers" | **IAT repair iron rule:** try auto/semi-auto repair first; on tool error or unreable binary after repair, STOP static IAT, record E-iat-repair-fail, switch to dynamic API breakpoints. FORBIDDEN infinite static IAT thrash. |
| "No import table (.NET) so the hard gate does not apply" | **Equivalent anchor still MUST:** .NET → dnSpy/IL/metadata summary into E-imports slot; DLL/SYS → E-exports alongside imports. FORBIDDEN to skip the gate. |


---
Expand Down
2 changes: 2 additions & 0 deletions RULES_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,8 @@ AI Agent 在遇到阻力时会自动生成"合理借口"来跳过步骤。以下
| "我先回复用户,等用户确认后再继续" | **不需要等确认。** 如果路由已明确且下一步是确定性的(如安装工具、读取文件),直接执行同时告知用户。不要在每一步都等用户点头。 |
| "我理解了规则,请告诉我你的具体任务" | **这是最严重的失败模式。** 读完规则后的正确行为是主动匹配用户意图到路由表,输出分析,开始执行。不是回传问题给用户。 |
| "用户让我重做导入表/某一步,但我改做了别的更有用的步骤" | **重做 = 重做被点名的同一步。** 用户要求重做 X(如导入表检查)时 MUST 重新执行 X 并更新对应 Evidence;禁止用其他步骤冒充完成,禁止静默跳过 X。 |
| "IAT 修不好,我再静态试几种壳工具拖时间" | **IAT 修复铁律:** 优先自动/半自动修复;工具报错或修完无法运行 → 立即停静态 IAT,记 E-iat-repair-fail,转动态 API 断点抓取。禁止无限静态死磕。 |
| ".NET / 没导入表,硬门不适用,我跳过" | **等价锚点仍 MUST:** .NET 用 dnSpy/IL/元数据摘要写入 E-imports 语义槽;DLL/SYS 必须并列 E-exports。禁止空过。 |


> 如果你发现自己在想以上任何一句话,停下来,回到行为链中正确的步骤,继续执行。
Expand Down
11 changes: 6 additions & 5 deletions skills/docs-generator/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,14 @@ For writing style, tone, and voice guidance, use `Skill(ce:writer)` with **The E

安全类正式报告 **MUST** 读取 `references/vendor-report-rules.md`(只取结构,不抄厂商原文)。仅在任务证据或用户明确要求时选择厂商 flavor;普通逆向和其他任务使用 `flavor = null`。

| Flavor | 何时用 | 主参考骨架 |
|--------|--------|------------|
| Flavor / Overlay | 何时用 | 主参考骨架 |
|------------------|--------|------------|
| `malware` | 明确恶意样本、木马、白加黑、钓鱼投毒 | 火绒式:概述→流程→样本分析→应急处置→IOC |
| `apt` | APT/战役/团伙/多阶段感染链/行业定向 | 卡巴斯基 Securelist 式:摘要→感染链→调查叙事→Interesting findings→技术分析→检测缓解→IOC |
| `flavor = null` | 普通 APK/ELF/PE/Mach-O 逆向、算法/固件分析、渗透 / CTF / JS 签名 | 原任务模板 + Base 通用元素;不套 malware/APT 专属章节 |
| thin `vuln` | 用户明确要求漏洞/补丁/CVE 技术分析 | 概述→影响/复现→崩溃与补丁分析→防护建议(叠加在 null 上,非第 3 默认全文 flavor) |

原则:**模板在精不在多** —— 仅上述 2 个厂商 flavor,不另建第三套全文模板
原则:**模板在精不在多** —— 2 个厂商全文 flavor;`vuln` 仅为可选 thin overlay,不另建第三套默认全文模板
与 §0 Evidence→Finding→Path **同时生效**;冲突时 Evidence 契约优先。

### 输出规范
Expand All @@ -68,7 +69,7 @@ For writing style, tone, and voice guidance, use `Skill(ce:writer)` with **The E
- 复现步骤必须让第三方能独立重现
- 敏感信息(真实 token、密码、内部 URL)用占位符替代
- **MUST** 包含 Evidence → Finding → Path 链(见 `../ops/evidence-finding-path.md` 与模板 §0)
- **MUST** 读取 `references/vendor-report-rules.md`:选定 `malware` / `apt` 或 `flavor = null`;无 flavor 时只输出原任务模板和适用的 Base 元素,不强制 IOC/ATT&CK
- **MUST** 读取 `references/vendor-report-rules.md`:选定 `malware` / `apt` 或 `flavor = null`(漏洞任务可叠加 thin `vuln`);无 flavor 时只输出原任务模板和适用的 Base 元素,不强制 IOC/ATT&CK
- **SHOULD** 引用 case `scope.md` / `timeline.md`(`../scripts/case-init.ps1`)

### 图表集成
Expand Down Expand Up @@ -177,7 +178,7 @@ For README, API endpoint, and file organization templates, see [references/templ
- `field-journal/` — 报告内容同时作为进化日志的数据来源

**安全报告模板**: `references/security-report-templates.md`
**厂商报告规则**: `references/vendor-report-rules.md`(flavor: malware | apt | null)
**厂商报告规则**: `references/vendor-report-rules.md`(flavor: malware | apt | null;optional overlay: vuln
**通用文档模板**: `references/templates.md`


Expand Down
16 changes: 13 additions & 3 deletions skills/docs-generator/references/security-report-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,14 @@
> 全文规则:`references/vendor-report-rules.md`(Issue #65)
> **MUST** 在生成安全类正式报告时读取并选型;**只抽结构,禁止抄录厂商原文/IOC 实例**。

| Flavor | 场景 | 骨架一句话 |
|--------|------|------------|
| Flavor / Overlay | 场景 | 骨架一句话 |
|------------------|------|------------|
| `malware` | 明确恶意样本/普通木马/白加黑 | 火绒式:概述→流程→样本分析→应急处置→IOC |
| `apt` | APT/战役/多阶段链 | 卡巴式:摘要→感染链→调查→Interesting findings→技术分析→检测缓解→IOC |
| `flavor = null` | 普通逆向/渗透/CTF/JS 签名 | 本节任务模板 + 适用的 Base 通用元素 |
| thin `vuln` | 漏洞/补丁/CVE 技术分析(显式) | 概述→影响/复现→崩溃与补丁分析→防护建议 |

**通用元素(G1–G7)摘要**:G1 执行摘要 MUST · G2 Scope MUST · G3 E/F/P MUST · G4 IOC 仅 `malware`/`apt` MUST · G5 建议仅 `malware`/`apt` MUST · G6 附录 SHOULD · G7 ATT&CK 在 `apt` MUST
**通用元素(G1–G7)摘要**:G1 执行摘要 MUST · G2 Scope MUST · G3 E/F/P MUST · G4 IOC 仅 `malware`/`apt` MUST · G5 建议在 `malware`/`apt`/`vuln` MUST · G6 附录 SHOULD · G7 ATT&CK 在 `apt` MUST

选型与章节顺序以 `vendor-report-rules.md` 为准;与 §0.1–0.5 冲突时 **Evidence 契约优先**。

Expand Down Expand Up @@ -130,6 +131,15 @@
3. 仍 **MUST** 含 §0 Evidence 链;`malware` / `apt` flavor 另 **MUST** 含 IOC 表
4. 二进制样本的静态分析 **MUST** 含导入表 Evidence(与 radare2/ida/malware 硬门一致)

## 1c. 漏洞技术分析报告(thin `vuln` overlay)

当任务为 **OS/组件漏洞、补丁对比、CVE 技术分析**,或用户明确要求「漏洞技术分析报告」时:

1. 读 `vendor-report-rules.md` §3b,使用 thin `vuln` 章节顺序(**不是** malware/apt 全文 flavor)
2. **MUST** 含:影响范围、授权内复现或明确 n/a、崩溃/根因或补丁差异 Evidence、防护/补丁建议
3. **MUST** 含 §0 Evidence→Finding→Path
4. **MUST NOT** 在未授权目标上扩展 PoC,或抄录外部利用武器化细节

## 2. 渗透测试报告模板

```markdown
Expand Down
55 changes: 50 additions & 5 deletions skills/docs-generator/references/vendor-report-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,23 @@
| `malware` | 火绒安全病毒/技术分析报告 | 明确的普通木马、白加黑、钓鱼投毒、恶意样本 |
| `apt` | 卡巴斯基 Securelist / APT 战役报告(如 MATA) | APT、团伙战役、多阶段感染链、行业定向 |

原则:**模板在精不在多** —— 仅 2 个厂商 flavor + 1 份通用专业元素;普通逆向、渗透、CTF 和 JS 报告保持任务模板,不默认伪装成恶意软件报告。
原则:**模板在精不在多** —— 仅 2 个厂商全文 flavor(`malware` / `apt`)+ Base 通用元素 + **可选 thin overlay**(如 `vuln` 漏洞技术分析)。普通逆向、渗透、CTF 和 JS 报告保持任务模板,不默认伪装成恶意软件报告;`vuln` **不是** 第 3 个默认全文 flavor

---

## 0. 何时启用

在 `docs-generator` 生成**安全类**报告时(逆向 / 恶意软件 / 渗透收尾 / 用户明确要求「专业报告」「厂商风格」)**MUST** 读取本文件。只有任务证据或用户明确要求支持时才选择厂商 flavor;否则使用 `flavor = null`,仅叠加通用专业元素和原任务模板。

| 信号 | Flavor |
|------|--------|
| 信号 | Flavor / Overlay |
|------|------------------|
| APT / 团伙 / 战役 / 多阶段 C2 / 行业定向 / ICS / spear-phish 战役 | `apt` |
| 明确恶意样本、木马、窃密、白加黑、仿冒站点 | `malware` |
| 用户明确要求漏洞/补丁/CVE 技术分析,或任务证据为 OS/组件漏洞研究 | `flavor = null` + **thin overlay `vuln`**(见 §3b) |
| 普通 APK/ELF/PE/Mach-O 逆向、算法分析、固件分析、渗透测试、CTF、JS 签名 | `flavor = null`;使用原任务模板和通用专业元素最小集 |

用户显式指定「按卡巴/APT」「按火绒/病毒报告」时,覆盖自动选型。
用户显式指定「按卡巴/APT」「按火绒/病毒报告」「按漏洞技术分析」时,覆盖自动选型。
**禁止** 把普通 malware/APT/普通逆向默认套进 `vuln` 目录。

---

Expand Down Expand Up @@ -160,6 +162,42 @@

---


## 3b. Thin overlay:`vuln`(漏洞技术分析 · 可选)

> Issue #65 补充。结构参考公开「操作系统/组件漏洞技术分析」类报告目录,**只抽章节骨架**,禁止抄录截图/正文中的 PoC 报文、利用细节或未授权攻击步骤。
> **不是** 第 3 个默认厂商全文 flavor;仅在漏洞研究任务或用户明确要求时叠加。

**叙事目标**:读者能快速看到「影响谁 → 如何确认/复现(授权内)→ 根因与补丁差异 → 如何缓解」。

### 建议章节顺序

```markdown
## 1. 漏洞概述
### 1.1 影响范围(版本/组件/配置前提)
### 1.2 漏洞复现(授权环境;步骤可第三方重复;无武器化教程口吻)

## 2. 漏洞分析
### 2.1 崩溃 / 异常分析(Evidence:崩溃日志、触发条件)
### 2.2 补丁分析(diff/守卫条件/修复点 — 挂 E-*)
### 2.3 PoC 或触发器分析(仅授权范围内已有材料;协议/输入构造层次说明即可)

## 3. 防护建议
### 3.1 缓解措施(配置/缓解开关等)
### 3.2 官方补丁与验证

## 4. Evidence → Finding → Path(可并入各节或独立表)
```

### 硬约束

- **MUST** scope/授权:未授权目标禁止复现与 PoC 扩展
- **MUST** E/F/P:复现、崩溃、补丁结论均挂 evidence_ids
- **MUST NOT** 把 `vuln` 当作 malware/APT 默认壳
- **MUST NOT** 抄录外部报告/截图中的利用代码或完整攻击武器化步骤
- IOC 表:仅当存在网络/文件指示器时出现;否则 n/a 或省略

---
## 4. 与现有任务模板的挂接

| 任务模板(`security-report-templates.md`) | 叠加方式 |
Expand All @@ -183,9 +221,14 @@ elif user_requests_huorong or vir_report or explicit_malware:
flavor = malware
else:
flavor = null # 原任务模板 + Base 中适用的元素
overlay = null
if user_requests_vuln_tech_report or cve_patch_analysis:
overlay = vuln # thin only; never a third default full flavor
emit(base_report)
if flavor in (malware, apt):
emit(report with flavor outline)
elif overlay == vuln:
emit(report with vuln thin outline)
```

---
Expand All @@ -198,6 +241,7 @@ if flavor in (malware, apt):
- [ ] `malware` / `apt` 报告有 IOC 表(或 n/a+原因)
- [ ] `malware` / `apt` 报告有可执行建议/处置
- [ ] 无 flavor 的任务没有被套入 malware/APT 专属章节
- [ ] uln 仅在漏洞任务启用;含概述/分析/防护骨架与 E/F/P;无未授权 PoC 武器化
- [ ] 无厂商原文粘贴、无 placeholder/TODO
- [ ] 导入表等硬门 Evidence 已进入静态/技术分析(若本任务做过二进制分析)

Expand All @@ -213,6 +257,7 @@ if flavor in (malware, apt):

## 8. 非目标

- 不维护 Mandiant/CrowdStrike/奇安信等额外全文模板(结构已由双 flavor 覆盖常见需求)。
- 不维护 Mandiant/CrowdStrike/奇安信等额外全文模板(结构已由双 flavor + 可选 thin overlay 覆盖常见需求)。
- 不把 `vuln` 升级为与 malware/apt 并列的默认全文 flavor。
- 不自动爬取厂商站点填报告。
- 不因 flavor 降低 Evidence 契约或授权范围。
8 changes: 6 additions & 2 deletions skills/ida-reverse/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,9 +244,12 @@ idapro_survey_binary(detail_level="minimal")
- 入口点(main/WinMain/DllMain)
- 有趣的字符串(URL、路径、错误消息)
- **导入分类(MUST)**:加密函数 / 网络 API / 文件操作 / 进程注入 / 注册表 — 必须落成 Evidence(建议 id:`E-imports`),可用 `idapro_entity_query(kind="imports")` 或 survey 输出中的 imports 段
- **DLL/SYS**:导出表与导入表并列(Evidence `E-exports`)
- **.NET**:无传统 IAT 时用模块/元数据/托管引用摘要作为等价锚点写入 E-imports 语义槽
- **干净导入表**:注明动态加载嫌疑,推动动态 API 断点验证
- 热门函数(高 xref 计数的函数通常是关键逻辑)

**硬门禁**:未将 imports 视图/分类摘要写入 Evidence 前,MUST NOT 进入 Step 4 深挖结论,MUST NOT 声称 survey 完成。导入表为空或查询失败时仍 MUST 记录失败现象。用户要求重做导入表检查时 MUST 重做本步骤,禁止改换其他步骤。
**硬门禁**:未将 imports 视图/分类摘要(或合法等价锚点)写入 Evidence 前,MUST NOT 进入 Step 4 深挖结论,MUST NOT 声称 survey 完成。导入表为空或查询失败时仍 MUST 记录失败现象。加壳 IAT 修复失败时 MUST 记 `E-iat-repair-fail` 并转动态调试抓 API,禁止静态死磕。用户要求重做导入表/IAT 检查时 MUST 重做被点名步骤,禁止改换其他步骤。

### Step 4: 深入关键函数
```
Expand Down Expand Up @@ -349,7 +352,8 @@ ida-pro-mcp --config
## 任务完成自检(声称完成前 MUST 通过)

- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
- [ ] survey/imports 是否已写入 Evidence(E-imports)?用户若要求重做导入表,是否重做了同一步?
- [ ] survey/imports 是否已写入 Evidence(E-imports 或等价)?DLL/SYS 是否含 E-exports?IAT 失败是否记 E-iat-repair-fail?
- [ ] 用户若要求重做导入表/IAT,是否重做了同一步?
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
- [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
2 changes: 2 additions & 0 deletions skills/llm-security/references/agent-obedience-engineering.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ MAY — 真正可选的
| "用户没明确说要报告,我就不写了" | **报告是默认行为,不是可选。** 安全任务完成后必须生成报告,除非用户明确说"不要报告"。 |
| "这个太简单了不需要记录 journal" | **简单任务也有踩坑价值。** 至少记录:目标类型 + 用了什么 + 有无意外,一行也行。 |
| "用户让我重做导入表/某一步,但我改做了别的更有用的步骤" | **重做 = 重做被点名的同一步。** 用户要求重做 X(如导入表检查)时 MUST 重新执行 X 并更新对应 Evidence;禁止用其他步骤冒充完成,禁止静默跳过 X。 |
| "IAT 修不好,我再静态试几种壳工具拖时间" | **IAT 修复铁律:** 优先自动/半自动修复;工具报错或修完无法运行 → 立即停静态 IAT,记 E-iat-repair-fail,转动态 API 断点抓取。禁止无限静态死磕。 |
| ".NET / 没导入表,硬门不适用,我跳过" | **等价锚点仍 MUST:** .NET 用 dnSpy/IL/元数据摘要写入 E-imports 语义槽;DLL/SYS 必须并列 E-exports。禁止空过。 |


**使用方式**:将本表放在 RULES.md 或其他指令文件末尾附近(高注意力区域)。Agent 在找借口之前先看到反驳。
Expand Down
Loading