1 SysWhispers4 解析

1.1 SSN 解析方法

选项 原理 抗 Hook 能力 备注
static 编译时嵌入 j00ru 表 ❌ 无运行时解析 最简单,但 SSN 会随系统更新过时
freshycalls 按 VA 排序 ntdll 导出 → 序号即 SSN ✅ 较强(默认选项) 不读指令字节,hook 不影响
hells_gate 读 ntdll stub 字节提取 SSN ❌ 被 hook 即失败 最弱,仅适合无 hook 环境
halos_gate Hell’s Gate + 邻居扫描 ⚠️ 中等 可绕过单条 hook,但遇远跳失效
tartarus Halo’s Gate + 处理 E9/FF25 远跳 ✅ 较强 Hell’s Gate 系的终极形态
from_disk 从 加载干净 ntdll ✅✅ 很强 SSN 来源完全干净
recycled FreshyCalls + 操作码交叉验证 ✅✅✅ 最强 兼具排序和验证,最抗干扰
hw_breakpoint 硬件断点 + VEH 拦截提取 SSN ✅ 较强 高级但复杂,依赖调试寄存器

1.2 系统调用执行方式

选项 行为 隐蔽性 备注
embedded stub 内直接 syscall ❌ 最低 RIP 指向你自己的代码,特征明显
indirect 跳转到 ntdll 内 syscall;ret gadget ✅ 较好 RIP 落在 ntdll 范围内
randomized 每次调用随机选一个 gadget ✅✅ 很好 抗 RIP 行为分析
egg 运行时替换 8 字节 egg 标记为 syscall;ret ✅✅ 很好 二进制中无静态 syscall 字节

1.3 其他多选

选项 功能 搭配注意
--obfuscate 打乱 stub 顺序 + 插入垃圾指令 ✅ 万能搭配
--encrypt-ssn 静态 XOR 加密 SSN 表 ⚠️ 与 static 解析搭配意义减半(SSN 本身就是编译时常量,加密仅增加一层混淆)
--stack-spoof 伪造调用栈帧 ⚠️ 仅对 indirect/randomized 有意义,对 embedded/egg 无效
--etw-bypass 补丁 EtwEventWrite ✅ 独立功能
--amsi-bypass 补丁 AmsiScanBuffer ✅ 独立功能
--unhook-ntdll 重映射干净 ntdll .text ⚠️ 与 from_disk 有功能重叠:from_disk 已经从干净 ntdll 读 SSN,但 unhook 还会让运行中的 ntdll 变干净(对 indirect/randomized 方法有用)。不冲突但可能冗余
--anti-debug 反调试检测 ✅ 独立功能
--sleep-encrypt Ekko 风格休眠时加密 .text ⚠️ 与 unhook-ntdll 可能冲突:两者都操作 ntdll 内存区域,执行时序需注意