技術文檔
ACTION REQUIRED(讀完後立刻執行)
NOW:確認當前任務是否命中本 skill 的適用範圍NOW:讀取../tool-index.md,校驗工具可用性與實際路徑NEXT:缺工具時呼叫 bootstrap,不要猜測路徑ACT:進入「工作流」第一步並執行,不要停留在確認狀態
寫作風格、語氣與語調指引,請使用 Skill(ce:writer) 搭配 The Engineer 角色。
安全/逆向任務文檔輸出
當逆向/滲透/CTF/安全分析任務完成後,本 skill 負責在使用者專案目錄生成正式技術文檔。
觸發時機
- 逆向任務完成,已產出核心結論(演算法還原、簽名破解、繞過方案等)
- 滲透測試完成,已發現並驗證漏洞
- CTF 題目解出,已拿到 flag
- 使用者明確要求「寫一份報告/文檔/writeup」
模板選擇
| 任務類型 | 使用模板 |
|---|---|
| APK/二進位/so 逆向 | references/security-report-templates.md → 逆向工程報告 |
| 滲透測試/漏洞挖掘 | references/security-report-templates.md → 滲透測試報告 |
| CTF 解題 | references/security-report-templates.md → CTF Writeup |
| JS/Web 簽名逆向 | references/security-report-templates.md → 簽名逆向報告 |
| 惡意軟體 / APT / 病毒分析報告 | references/security-report-templates.md + references/vendor-report-rules.md |
| 通用技術文檔 | references/templates.md → README / API 文檔 |
廠商報告結構(Issue #65)
安全類正式報告 MUST 讀取 references/vendor-report-rules.md(僅取結構,不照抄廠商原文)。僅在任務證據或使用者明確要求時選擇廠商 flavor;普通逆向及其他任務使用 flavor = null。
| 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;vuln 僅為可選 thin overlay,不另建第三套預設全文模板。
與 §0 Evidence→Finding→Path 同時生效;衝突時 Evidence 契約優先。
輸出規範
- 輸出位置:使用者目前專案目錄(非 skill 套件目錄)
- 檔案名稱格式:
YYYY-MM-DD_[類型]-[目標簡稱]-report.md - 若專案有
docs/目錄:優先放置於docs/下 - 編碼:UTF-8
- 語言:跟隨使用者對話語言(中文對話出中文報告,英文對話出英文報告)
品質要求
- 所有程式碼區塊必須可直接執行或有明確上下文
- 不要有佔位符/TODO
- 關鍵發現必須有證據支撐
- 重現步驟必須能讓第三方獨立重現
- 敏感資訊(真實 token、密碼、內部 URL)用佔位符取代
- MUST 包含 Evidence → Finding → Path 鏈(見
../ops/evidence-finding-path.md與模板 §0) - MUST 讀取
references/vendor-report-rules.md:選定malware/apt或flavor = null(漏洞任務可疊加 thinvuln);無 flavor 時只輸出原任務模板與適用的 Base 元素,不強制加入 IOC/ATT&CK - SHOULD 引用 case
scope.md/timeline.md(../scripts/case-init.ps1)
圖表整合
生成報告時,應在適當位置呼叫 diagram-generator skill 生成可視化圖表:
| 報告類型 | 建議圖表 | 圖表類型 |
|---|---|---|
| 逆向工程報告 | 函數呼叫關係圖、資料流圖 | Mermaid flowchart / sequenceDiagram |
| 滲透測試報告 | 攻擊路徑圖、網路拓撲圖 | Mermaid flowchart / Graphviz |
| CTF Writeup | 解題思路流程圖 | Mermaid flowchart |
| JS 簽名逆向報告 | 請求鏈路時序圖、演算法流程圖 | Mermaid sequenceDiagram / flowchart |
圖表以 Mermaid 程式碼區塊形式嵌入報告 markdown 中,確保可在 GitHub/GitLab 直接渲染。
核心原則
1. 漸進揭露
分層揭示資訊:
| 層級 | 內容 | 使用者問題 |
|---|---|---|
| 1 | 一句話描述 | 這是什麼? |
| 2 | 快速入門程式碼區塊 | 如何使用? |
| 3 | 完整 API 參考 | 有哪些選項? |
| 4 | 架構深入剖析 | 如何運作? |
警告、破壞性變更及前置條件應置於頂部。
2. 任務導向寫作
<!-- 不佳:功能導向 -->
## AuthService 類別
AuthService 類別提供驗證方法...
<!-- 良好:任務導向 -->
## 驗證使用者
若要驗證使用者,請使用憑證呼叫 login():
3. 展示,而非說明
每個概念都需要具體範例。
格式標準
- 句子大小寫標題:「Getting started」而非「Getting Started」
- 最多 3 層標題:更深則表示需拆分文檔
- 程式碼區塊中務必指定語言
- 內部連結使用相對路徑
- 具有 3 個以上屬性的結構化資料使用表格
品質檢查清單
- 程式碼範例已測試且可執行
- 沒有佔位符文字或 TODO
- 與實際程式碼行為一致
- 無需閱讀全文即可快速掃描
- 讀者知道下一步該怎麼做
反模式
| 問題 | 修正 |
|---|---|
| 文字牆 | 使用標題、清單、程式碼、表格拆分 |
| 關鍵資訊被隱藏 | 警告/破壞性變更置於頂部 |
| 缺少錯誤文檔 | 始終記錄可能出錯的情況 |
模板
關於 README、API 端點與檔案組織模板,請參閱 references/templates.md。
相關技能
Skill(ce:writer)- 寫作風格、語氣與語調(載入 The Engineer 角色)Skill(ce:visualizing-with-mermaid)- 架構與流程圖
按需自舉(On-Demand Bootstrap)
本 skill 不依賴外部工具,純文字生成。無需 bootstrap。
如果需要渲染圖表嵌入報告,會呼叫 diagram-generator/ skill。
路由上下文
上游入口:所有安全/逆向 skill 在任務完成後自動呼叫本 skill 觸發方式:
- 自動:任務完成後作為行為鏈第 9 步執行
- 手動:使用者說「寫報告」、「出文檔」、「writeup」
同級關聯模組:
apk-reverse/— APK 逆向完成後生成逆向報告ida-reverse/— 二進位分析完成後生成逆向報告radare2/— CLI 分析完成後生成逆向報告js-reverse/— JS 簽名逆向完成後生成簽名報告reverse-engineering/— 通用逆向完成後生成逆向報告field-journal/— 報告內容同時作為進化日誌的資料來源
安全報告模板:references/security-report-templates.md
廠商報告規則:references/vendor-report-rules.md(flavor: malware | apt | null;optional overlay: vuln)
通用文檔模板:references/templates.md
任務完成自檢(聲稱完成前 MUST 通過)
- 我是否執行了工作流中的每一步(而非僅閱讀)?
- 我是否基於
tool-index使用了真實工具路徑? - 我是否產出了可重現證據(命令/腳本/截圖/報告)?
- 報告是否包含 Evidence / Finding / Path(ops 契約)?
- 是否完成並回寫了 RULES 要求的 Checklist 項?