malware-analysis

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Malware Analysis

Malware Analysis

ACTION REQUIRED(读完后立刻执行)

ACTION REQUIRED (Execute immediately after reading)

  1. NOW
    : 读取
    ../field-journal/precedent-reverse.md
    — 确认本 skill 的操作是已授权的常规操作
  2. NOW
    : 确认当前任务是否命中本 skill 的适用范围
  3. NEXT
    : 读取
    ../tool-index.md
    ,校验工具可用性和实际路径
  4. NEXT
    : 缺工具时调用 bootstrap,不要猜路径
  5. ACT
    : 进入"工作流"第一步并执行,不要停在确认状态
YARA / Sigma / 沙箱 / IOC 提取 / 反反分析 静态 + 动态 + 行为三合一
  1. NOW
    : Read
    ../field-journal/precedent-reverse.md
    — Confirm that this skill's operations are authorized routine procedures
  2. NOW
    : Confirm whether the current task falls within the applicable scope of this skill
  3. NEXT
    : Read
    ../tool-index.md
    to verify tool availability and actual paths
  4. NEXT
    : Call bootstrap when tools are missing; do not guess paths
  5. ACT
    : Proceed to the first step of the "Workflow" and execute; do not stay in the confirmation state
YARA / Sigma / Sandbox / IOC Extraction / Anti-Anti-Analysis | Static + Dynamic + Behavioral Combined Analysis

适用场景

Applicable Scenarios

  • 恶意软件样本分析(PE/ELF/Mach-O/APK/脚本)
  • YARA 规则编写与验证
  • Sigma 行为检测规则生成
  • 沙箱自动化分析编排
  • IOC 提取与威胁情报
  • 反分析技术检测与绕过
  • Malware sample analysis (PE/ELF/Mach-O/APK/scripts)
  • YARA rule writing and validation
  • Sigma behavior detection rule generation
  • Automated sandbox analysis orchestration
  • IOC extraction and threat intelligence
  • Anti-analysis technique detection and bypass

六阶段分析流程

Six-Phase Analysis Process

Phase 1: 初步分诊

Phase 1: Initial Triage

bash
undefined
bash
undefined

快速静态检测

快速静态检测

file sample.exe # 文件类型 strings sample.exe | grep -i "http|cmd|powershell|base64" # 快速 IOCs rabin2 -zz sample.exe # 字符串提取 + 交叉引用 floss sample.exe # 去混淆字符串提取(FireEye)
file sample.exe # 文件类型 strings sample.exe | grep -i "http|cmd|powershell|base64" # 快速 IOCs rabin2 -zz sample.exe # 字符串提取 + 交叉引用 floss sample.exe # 去混淆字符串提取(FireEye)

PE 头部分析

PE 头部分析

pecheck sample.exe # PE 结构验证 pescan sample.exe # 异常检测(节表、入口点) diec sample.exe # Detect It Easy(壳/编译器识别)
pecheck sample.exe # PE 结构验证 pescan sample.exe # 异常检测(节表、入口点) diec sample.exe # Detect It Easy(壳/编译器识别)

Hash 查询

Hash 查询

sha256sum sample.exe
sha256sum sample.exe

→ VirusTotal / MalwareBazaar / Triage 查询

→ VirusTotal / MalwareBazaar / Triage 查询


```text
Triage MUST 清单(Issue #65):
□ 文件类型:EXE / DLL / SYS / .NET / 其他
□ 架构 x86/x64/ARM;查壳(DIE 等)与编译语言线索
□ DLL/SYS:导入表与导出表并列检查(见 Phase 2 硬门)
□ .NET:无传统 IAT → 走 dnSpy/IL/元数据等价锚点(见 Phase 2)

```text
Triage MUST 清单(Issue #65):
□ 文件类型:EXE / DLL / SYS / .NET / 其他
□ 架构 x86/x64/ARM;查壳(DIE 等)与编译语言线索
□ DLL/SYS:导入表与导出表并列检查(见 Phase 2 硬门)
□ .NET:无传统 IAT → 走 dnSpy/IL/元数据等价锚点(见 Phase 2)

Phase 1b: 脱壳与 IAT 处理(有壳时 · Issue #65)

Phase 1b: Unpacking and IAT Processing (When Packed · Issue #65)

text
□ 无壳 / .NET → 跳到 Phase 2
□ 有壳:尝试脱壳(授权隔离环境)→ 尝试修复 IAT
  - x86:ImportREC(或等价);x64:Scylla(或等价)。禁止 64 位死磕 ImportREC
□ 【IAT 修复铁律】优先自动/半自动修复;若工具报错或修复后无法运行:
  - 立即终止继续静态 IAT 修复
  - MUST 记录 E-iat-repair-fail(命令、工具、现象)
  - 转入 Phase 3 动态:API 断点(如 bp CreateFile)/ 硬件断点 / 内存搜索抓取导入
  - 这不算跳过导入表:路径已尝试并记 Evidence
□ 【补丁 6】脱壳+修 IAT 后闪退/蓝屏(疑 CRC/大小自校验):
  - 放弃继续静态修文件;记 E-self-check-crash 或并入 E-iat-repair-fail
  - 转 Phase 3:对 CreateFile / GetFileSize / 哈希相关 API 下断
□ 用户指令可行性(§0.5):加壳时用户抢跑「先别脱壳先看导入表」→ 说明阻塞 + 请确认;强制则记 quality=unreadable/packed,禁止冒充完成有意义 IAT
□ 用户要求重做「IAT 修复 / 导入表检查」:MUST 重做被点名步骤(或经确认的前提协商结果),禁止换无关步骤冒充
text
□ 无壳 / .NET → 跳到 Phase 2
□ 有壳:尝试脱壳(授权隔离环境)→ 尝试修复 IAT
  - x86:ImportREC(或等价);x64:Scylla(或等价)。禁止 64 位死磕 ImportREC
□ 【IAT 修复铁律】优先自动/半自动修复;若工具报错或修复后无法运行:
  - 立即终止继续静态 IAT 修复
  - MUST 记录 E-iat-repair-fail(命令、工具、现象)
  - 转入 Phase 3 动态:API 断点(如 bp CreateFile)/ 硬件断点 / 内存搜索抓取导入
  - 这不算跳过导入表:路径已尝试并记 Evidence
□ 【补丁 6】脱壳+修 IAT 后闪退/蓝屏(疑 CRC/大小自校验):
  - 放弃继续静态修文件;记 E-self-check-crash 或并入 E-iat-repair-fail
  - 转 Phase 3:对 CreateFile / GetFileSize / 哈希相关 API 下断
□ 用户指令可行性(§0.5):加壳时用户抢跑「先别脱壳先看导入表」→ 说明阻塞 + 请确认;强制则记 quality=unreadable/packed,禁止冒充完成有意义 IAT
□ 用户要求重做「IAT 修复 / 导入表检查」:MUST 重做被点名步骤(或经确认的前提协商结果),禁止换无关步骤冒充

Phase 2: 静态分析

Phase 2: Static Analysis

text
反汇编/反编译:
□ IDA Pro / Ghidra: 深度反编译
□ radare2: CLI 快速分析
□ x64dbg: Windows GUI 调试器

重点分析区域:
□ 入口点(Entry Point)→ 初始化逻辑
□ 导入表 → API 用途推断(CreateRemoteThread=注入, CryptEncrypt=勒索)
   **MUST(硬门)**:执行 rabin2 -i / IDA imports / pecheck 等价命令,将导入表分类摘要写入 Evidence(E-imports)后才能进入 Phase 3(除非已记 E-iat-repair-fail 并走动态旁路,见 Phase 1b)
   分类至少覆盖:网络 / 文件 / 加密 / 进程注入 / 注册表 / 其他可疑 API
   解析失败或表为空:仍 MUST 记录失败输出,禁止静默跳过
   **DLL/SYS**:MUST 并列记录导出表 Evidence(E-exports,`rabin2 -E` 或等价)
   **.NET**:无传统 IAT 时 MUST 用 dnSpy/IL/元数据/程序集引用与敏感 API 摘要作为等价锚点,写入 E-imports / E-triage-imports 语义槽
   **干净导入表**:仅基础 DLL、几乎无业务 API → MUST 注明动态加载嫌疑(LoadLibrary/GetProcAddress),SHOULD 转入 Phase 3 抓内存 API
   用户要求「重做导入表检查」:MUST 重做本项(阻塞时先走可行性门闩协商),禁止改换其他步骤冒充完成
   **高危 API 组合(补丁 8)**:表过长时优先输出恶意组合簇(如 FindWindow+WriteProcessMemory+CreateRemoteThread),过滤纯系统基础调用噪声
□ 资源段 → 嵌入 Payload(.rsrc 节)
□ 字符串表 → URL/C2/文件路径/Base64 blob
□ TLS 回调 → 调试器启动前执行
text
反汇编/反编译:
□ IDA Pro / Ghidra: 深度反编译
□ radare2: CLI 快速分析
□ x64dbg: Windows GUI 调试器

重点分析区域:
□ 入口点(Entry Point)→ 初始化逻辑
□ 导入表 → API 用途推断(CreateRemoteThread=注入, CryptEncrypt=勒索)
   **MUST(硬门)**:执行 rabin2 -i / IDA imports / pecheck 等价命令,将导入表分类摘要写入 Evidence(E-imports)后才能进入 Phase 3(除非已记 E-iat-repair-fail 并走动态旁路,见 Phase 1b)
   分类至少覆盖:网络 / 文件 / 加密 / 进程注入 / 注册表 / 其他可疑 API
   解析失败或表为空:仍 MUST 记录失败输出,禁止静默跳过
   **DLL/SYS**:MUST 并列记录导出表 Evidence(E-exports,`rabin2 -E` 或等价)
   **.NET**:无传统 IAT 时 MUST 用 dnSpy/IL/元数据/程序集引用与敏感 API 摘要作为等价锚点,写入 E-imports / E-triage-imports 语义槽
   **干净导入表**:仅基础 DLL、几乎无业务 API → MUST 注明动态加载嫌疑(LoadLibrary/GetProcAddress),SHOULD 转入 Phase 3 抓内存 API
   用户要求「重做导入表检查」:MUST 重做本项(阻塞时先走可行性门闩协商),禁止改换其他步骤冒充完成
   **高危 API 组合(补丁 8)**:表过长时优先输出恶意组合簇(如 FindWindow+WriteProcessMemory+CreateRemoteThread),过滤纯系统基础调用噪声
□ 资源段 → 嵌入 Payload(.rsrc 节)
□ 字符串表 → URL/C2/文件路径/Base64 blob
□ TLS 回调 → 调试器启动前执行

Phase 3: 沙箱动态分析

Phase 3: Dynamic Sandbox Analysis

text
自动化沙箱:
□ Joe Sandbox / ANY.RUN / Triage: 商业沙箱
□ CAPE Sandbox: 开源 + YARA 集成(推荐)
□ ASD Azul: 开源恶意软件分析平台(2026 新发布)
□ Cuckoo Sandbox: 经典开源(逐步被 CAPE 取代)

调试起手式(补丁 7+10 · MUST 顺序,用户态调试器):
□ ① TLS 回调断点 → ② 入口点 EP 断点 → ③ 敏感 API 断点 → ④ ExitProcess/退出路径保底断点
□ ExitProcess 触发时:不急着重启;立即 dump memory,路径写入 Evidence(补丁 10)

监控重点:
□ 进程创建: CreateProcess / ShellExecute
□ 文件操作: WriteFile → 勒索? DeleteFile → Wiper?
□ 注册表: Run/RunOnce 持久化
□ 网络: HTTP/DNS → C2 通信
□ 内存: VirtualAllocEx → 进程注入
□ 服务: CreateService → 持久化
□ IAT 修复失败 / 自校验闪退样本:敏感 API + CreateFile/GetFileSize 断点 / 硬件执行断点 / 内存搜索

无行为应急分支(MUST):
□ 沙箱无行为、秒退或无限休眠 → 检查反调试/反虚拟机(CPUID、计时、环境特征)
□ 尝试硬件断点绕过、补丁检测点、或换物理机/更高保真环境
□ 将「无行为 + 条件」写入 Evidence;禁止无条件写成「样本无害」

时间盒(补丁 9 · SHOULD 默认,可覆盖):
□ 静态深挖约 15 分钟无关键路径 → 强制转入本 Phase 动态
□ 动态单步约 200 条指令无恶意线索 → 强制回静态字符串/交叉引用重锚
text
自动化沙箱:
□ Joe Sandbox / ANY.RUN / Triage: 商业沙箱
□ CAPE Sandbox: 开源 + YARA 集成(推荐)
□ ASD Azul: 开源恶意软件分析平台(2026 新发布)
□ Cuckoo Sandbox: 经典开源(逐步被 CAPE 取代)

调试起手式(补丁 7+10 · MUST 顺序,用户态调试器):
□ ① TLS 回调断点 → ② 入口点 EP 断点 → ③ 敏感 API 断点 → ④ ExitProcess/退出路径保底断点
□ ExitProcess 触发时:不急着重启;立即 dump memory,路径写入 Evidence(补丁 10)

监控重点:
□ 进程创建: CreateProcess / ShellExecute
□ 文件操作: WriteFile → 勒索? DeleteFile → Wiper?
□ 注册表: Run/RunOnce 持久化
□ 网络: HTTP/DNS → C2 通信
□ 内存: VirtualAllocEx → 进程注入
□ 服务: CreateService → 持久化
□ IAT 修复失败 / 自校验闪退样本:敏感 API + CreateFile/GetFileSize 断点 / 硬件执行断点 / 内存搜索

无行为应急分支(MUST):
□ 沙箱无行为、秒退或无限休眠 → 检查反调试/反虚拟机(CPUID、计时、环境特征)
□ 尝试硬件断点绕过、补丁检测点、或换物理机/更高保真环境
□ 将「无行为 + 条件」写入 Evidence;禁止无条件写成「样本无害」

时间盒(补丁 9 · SHOULD 默认,可覆盖):
□ 静态深挖约 15 分钟无关键路径 → 强制转入本 Phase 动态
□ 动态单步约 200 条指令无恶意线索 → 强制回静态字符串/交叉引用重锚

Phase 4: YARA 规则编写

Phase 4: YARA Rule Writing

yara
// 规则结构
rule MalwareFamily_Example {
    meta:
        description = "检测 Example 恶意软件家族"
        author = "分析者"
        date = "2026-05"
        severity = "high"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
        mitre_id = "T1055"  // Process Injection

    strings:
        // 字符串匹配
        $str1 = "C2_SERVER_URL" ascii wide
        $str2 = "payload.dat" ascii

        // 十六进制匹配
        $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
        // 操作码序列: mov eax, [ebp-?]; push eax; call [import]; test eax, eax

        // 正则匹配
        $re1 = /https?:\/\/[a-z0-9.-]+\/[a-z]{3,8}\.php/ ascii

    condition:
        // 组合条件
        uint16(0) == 0x5A4D and     // MZ 头
        filesize < 500KB and
        (2 of ($str*) or $hex1)
}
yara
// 规则结构
rule MalwareFamily_Example {
    meta:
        description = "检测 Example 恶意软件家族"
        author = "分析者"
        date = "2026-05"
        severity = "high"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
        mitre_id = "T1055"  // Process Injection

    strings:
        // 字符串匹配
        $str1 = "C2_SERVER_URL" ascii wide
        $str2 = "payload.dat" ascii

        // 十六进制匹配
        $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
        // 操作码序列: mov eax, [ebp-?]; push eax; call [import]; test eax, eax

        // 正则匹配
        $re1 = /https?:\/\/[a-z0-9.-]+\/[a-z]{3,8}\.php/ ascii

    condition:
        // 组合条件
        uint16(0) == 0x5A4D and     // MZ 头
        filesize < 500KB and
        (2 of ($str*) or $hex1)
}

Phase 5: Sigma 规则生成

Phase 5: Sigma Rule Generation

yaml
undefined
yaml
undefined

行为检测规则

行为检测规则

title: Suspicious Process Injection via CreateRemoteThread id: 5a3d2c1b-1234-5678-9abc-def012345678 status: experimental description: 检测使用 CreateRemoteThread 的进程注入行为 author: 分析者 date: 2026/05/25 tags: - attack.t1055 # Process Injection - attack.t1055.001 # DLL Injection logsource: category: process_creation product: windows detection: selection: Image|endswith: '\powershell.exe' CommandLine|contains: - 'CreateRemoteThread' - 'VirtualAllocEx' - 'WriteProcessMemory' condition: selection falsepositives: - 合法的调试工具 level: high
undefined
title: Suspicious Process Injection via CreateRemoteThread id: 5a3d2c1b-1234-5678-9abc-def012345678 status: experimental description: 检测使用 CreateRemoteThread 的进程注入行为 author: 分析者 date: 2026/05/25 tags: - attack.t1055 # Process Injection - attack.t1055.001 # DLL Injection logsource: category: process_creation product: windows detection: selection: Image|endswith: '\powershell.exe' CommandLine|contains: - 'CreateRemoteThread' - 'VirtualAllocEx' - 'WriteProcessMemory' condition: selection falsepositives: - 合法的调试工具 level: high
undefined

Phase 6: IOC 提取与情报

Phase 6: IOC Extraction and Threat Intelligence

text
IOC 类型分类:
□ 网络 IOC:
  - IP: C2 地址(注意时效性)
  - Domain: DGA 算法生成的域名(rsnkfda.com, xpqmje.net)
  - URL: Payload 托管地址
  - User-Agent: 自定义 UA 字符串

□ 主机 IOC:
  - 文件路径: %APPDATA%\Microsoft\Crypto\RSA\*.dat
  - 注册表: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
  - Mutex: Global\{GUID} 互斥体名称
  - 服务名: 伪装成系统服务的名称

□ 行为 IOC:
  - MITRE ATT&CK 技术 ID (T1055, T1003, T1571...)
  - Sigma 规则 → SIEM 集成
  - YARA 规则 → 端点检测

□ 静态 IOC:
  - 编译时间戳(可伪造)
  - PDB 路径(含开发者信息)
  - 节名异常(非标准 .text/.data)
  - 导入表异常组合(如勒索软件 CryptEncrypt + DeleteShadowCopies)
text
IOC 类型分类:
□ 网络 IOC:
  - IP: C2 地址(注意时效性)
  - Domain: DGA 算法生成的域名(rsnkfda.com, xpqmje.net)
  - URL: Payload 托管地址
  - User-Agent: 自定义 UA 字符串

□ 主机 IOC:
  - 文件路径: %APPDATA%\Microsoft\Crypto\RSA\*.dat
  - 注册表: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
  - Mutex: Global\{GUID} 互斥体名称
  - 服务名: 伪装成系统服务的名称

□ 行为 IOC:
  - MITRE ATT&CK 技术 ID (T1055, T1003, T1571...)
  - Sigma 规则 → SIEM 集成
  - YARA 规则 → 端点检测

□ 静态 IOC:
  - 编译时间戳(可伪造)
  - PDB 路径(含开发者信息)
  - 节名异常(非标准 .text/.data)
  - 导入表异常组合(如勒索软件 CryptEncrypt + DeleteShadowCopies)

反分析技术速查

Quick Reference for Anti-Analysis Techniques

技术检测方法YARA 特征
虚拟机检测WMI Win32_BIOS/VideoController/Processor
Win32_
字符串 + 特定厂商名
沙箱检测磁盘 < 60GB, RAM < 2GB, 单核 CPUGlobalMemoryStatusEx 调用模式
调试器检测IsDebuggerPresent, CheckRemoteDebuggerPresentPEB.BeingDebugged 偏移访问
定时逃逸Sleep(300000) 后执行恶意行为NtDelayExecution 长参数
地理位置检测检查键盘布局/时区 → 排除 CIS 国家GetKeyboardLayoutList 调用
父进程检测explorer.exe vs cmd.exe进程名字符串比较
API 直接 syscall绕过 EDR hooksyscall 指令 + SSN 解析
TechniqueDetection MethodYARA Signature
Virtual Machine DetectionWMI Win32_BIOS/VideoController/Processor
Win32_
strings + specific vendor names
Sandbox DetectionDisk < 60GB, RAM < 2GB, Single-core CPUGlobalMemoryStatusEx call pattern
Debugger DetectionIsDebuggerPresent, CheckRemoteDebuggerPresentPEB.BeingDebugged offset access
Timed EscapeSleep(300000) before executing malicious behaviorNtDelayExecution long parameter
Geolocation DetectionCheck keyboard layout/timezone → Exclude CIS countriesGetKeyboardLayoutList call
Parent Process Detectionexplorer.exe vs cmd.exeProcess name string comparison
Direct API SyscallBypass EDR hookSyscall instruction + SSN parsing

多 Agent 自动化分析 (SentinelHive 架构)

Multi-Agent Automated Analysis (SentinelHive Architecture)

text
┌─────────────────────────────────────────────────┐
│                  Hive Director                    │
│          (Claude Opus 编排 + 仲裁)                │
└──────┬──────┬──────┬──────┬──────┬───────┘
       │      │      │      │      │
   ┌───┘  ┌───┘  ┌───┘  ┌───┘  ┌───┘
   ▼      ▼      ▼      ▼      ▼      ▼
Triage  RE    Behav  Intel  Detect Remed
 快速   反编译  行为   威胁   规则   修复
 分诊   静态   动态   情报   YARA  方案
                          Sigma
text
┌─────────────────────────────────────────────────┐
│                  Hive Director                    │
│          (Claude Opus 编排 + 仲裁)                │
└──────┬──────┬──────┬──────┬──────┬───────┘
       │      │      │      │      │
   ┌───┘  ┌───┘  ┌───┘  ┌───┘  ┌───┘
   ▼      ▼      ▼      ▼      ▼      ▼
Triage  RE    Behav  Intel  Detect Remed
 快速   反编译  行为   威胁   规则   修复
 分诊   静态   动态   情报   YARA  方案
                          Sigma

工具链

Toolchain

工具用途获取
Ghidra / IDA Pro深度反编译ghidra-sre.org
CAPE Sandbox开源恶意软件沙箱GitHub: kevoreilly/CAPEv2
ASD Azul大规模自动化分析GitHub: ASD
YARA模式匹配规则引擎
pip install yara-python
SigmaSIEM 行为检测规则GitHub: SigmaHQ/sigma
FLOSS去混淆字符串提取
pip install flare-floss
Detect It Easy壳/编译器检测GitHub: horsicq/Detect-It-Easy
pe-sieve进程内存扫描GitHub: hasherezade/pe-sieve
VirusTotal API多引擎扫描virustotal.com
MalwareBazaar恶意软件样本库bazaar.abuse.ch
ToolPurposeAcquisition
Ghidra / IDA ProIn-depth decompilationghidra-sre.org
CAPE SandboxOpen-source malware sandboxGitHub: kevoreilly/CAPEv2
ASD AzulLarge-scale automated analysisGitHub: ASD
YARAPattern matching rule engine
pip install yara-python
SigmaSIEM behavior detection rulesGitHub: SigmaHQ/sigma
FLOSSDeobfuscated string extraction
pip install flare-floss
Detect It EasyPacker/compiler detectionGitHub: horsicq/Detect-It-Easy
pe-sieveProcess memory scanningGitHub: hasherezade/pe-sieve
VirusTotal APIMulti-engine scanningvirustotal.com
MalwareBazaarMalware sample librarybazaar.abuse.ch

参考

References

  • references/yara-sigma-rules.md
    — YARA + Sigma 编写方法论
  • references/sandbox-orchestration.md
    — 沙箱编排与自动化
  • references/anti-analysis-techniques.md
    — 94 种反分析技术检测
  • ../reverse-engineering/references/re-agent-workflow.md
    — IAT 铁律与六阶段门闩(Issue #65)
  • references/yara-sigma-rules.md
    — YARA + Sigma Writing Methodology
  • references/sandbox-orchestration.md
    — Sandbox Orchestration and Automation
  • references/anti-analysis-techniques.md
    — Detection of 94 Anti-Analysis Techniques
  • ../reverse-engineering/references/re-agent-workflow.md
    — IAT Golden Rules and Six-Phase Gates (Issue #65)

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

Task Completion Self-Check (MUST Pass Before Claiming Completion)

  • 我是否执行了工作流中的每一步(而不是只阅读)?
  • 导入表 MUST 检查是否已执行并写入 Evidence(E-imports 或 .NET 等价锚点)?DLL/SYS 是否含 E-exports?
  • 若 IAT 修复失败或自校验闪退:是否记录 E-iat-repair-fail / E-self-check-crash 并转入动态?
  • 重做请求是否回到被点名步骤或经确认的前提协商?阻塞时是否说明+请确认而非偷换步骤?
  • 动态是否按 TLS→EP→敏感 API→ExitProcess 保底顺序预置断点?时间盒/高危 API 组合是否按旁路处理?
  • 我是否基于
    tool-index
    使用了真实工具路径?
  • 我是否产出了可复现证据(命令/脚本/截图/报告)?
  • 我是否完成并回写了 RULES 要求的 Checklist 项?
  • Have I executed every step in the workflow (not just read)?
  • Has the MUST-required import table check been executed and written to Evidence (E-imports or .NET equivalent anchor)? Do DLL/SYS samples include E-exports?
  • If IAT repair failed or sample crashed due to self-check: Have I recorded E-iat-repair-fail / E-self-check-crash and switched to dynamic analysis?
  • For redo requests, have I returned to the specified step or negotiated confirmed prerequisites? When blocked, have I explained and requested confirmation instead of replacing steps?
  • For dynamic analysis, have I set breakpoints in the required order: TLS → EP → Sensitive API → ExitProcess fallback? Have timebox/high-risk API combinations been handled as per bypass rules?
  • Have I used real tool paths based on
    tool-index
    ?
  • Have I produced reproducible evidence (commands/scripts/screenshots/reports)?
  • Have I completed and written back all Checklist items required by RULES?