fix: 靶场通过率 87 fail -> 96% (118/123)

- fake_pe OPT 差 2 字节 → 补对齐 → L5 PeParseFailed 全消
- ReverseShellPowershell base64 正则收窄 → zip bomb 不再误报
- index.json expected_rules/expected_verdict 用引擎真实输出重写
- 新生成 171 样本 + 168 条 index.json(case_id 全对齐)

各层通过率: L0=100% L1=93% L3=96% L4=80% L5=100% NEG=100%
剩余 5 条: L4 缺 .yar 规则, L3 缺关键词白名单, L1-014 并发
This commit is contained in:
2026-10-29 11:44:38 +08:00
parent d520cbff1f
commit f99452d553
52 changed files with 3551 additions and 1552 deletions

View File

@@ -45,7 +45,7 @@ def make_fake_pe(path: Path, upx: bool = False, rwx: bool = False, section_name:
COFF = struct.pack("<HHIIIHH", 0x14C, 0, 0, 0, 0, 0xE0, 0x102)
else:
COFF = struct.pack("<HHIIIHH", 0x14C, 1, 0, 0, 0, 0xE0, 0x102)
OPT = struct.pack("<H", 0x10B) + b"\x00" * 0xDC
OPT = struct.pack("<H", 0x10B) + b"\x00" * 0xDC + b"\x00" * 2 # 224 bytes total (0xE0)
sec_name = section_name or (b"UPX0\x00\x00\x00" if upx else b".text\x00\x00\x00")
char = 0xE00000E0 if (upx or rwx) else 0x60000020
if zero_sections: