用途:在恶意样本或工具被杀软/EDR 检测后,分析其规避手段,回答“为什么被检测”与“绕过点在哪”。适用 AMSI 绕过、ETW 禁用、无文件执行、lolbin 链等场景;不用于纯静态代码分析、纯行为观察或检测规则编写本身。以 Windows 为主(AMSI/ETW/lolbin 均为 Windows 概念),Linux/macOS 的类似对抗按同一“规避识别→绕过点定位”框架套用。
主要能力与用法。规避手段识别:输入样本与检测触发信息,按 AMSI 绕过(patch/反射加载)、ETW 禁用(patch provider/掩码)、无文件(内存执行、注册表运行键+远程脚本、WMI)、lolbin 链(rundll32/mshta/regsvr32/WMI/PowerShell)、字符串编码混淆分类归档;用 Sysmon/procmon 记录进程创建链与命令行,留内存快照。AMSI patch 定位:用 procdump -accepteula -ma <pid> mem.dmp 或 gcore 取内存,将磁盘 amsi.dll 与内存中 amsi.dll 函数头逐字节对照,常见 patch 为 AmsiScanBuffer 入口改为直接返回 0x80070057,或 EtwEventWrite 系列前几字节改 ret;用 AMSITrigger.exe -i test.ps1 定位触发扫描的字符串。ETW 禁用分析:logman query -ets 对比样本运行前后活动会话,SilkETW.exe -t user -pn Microsoft-Windows-Sysmon -ot file -p out.etl 捕获事件,内存对照 ntdll 的 EtwEventWrite* 判断全局或特定 provider 禁用。lolbin 链追踪:Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational';Id=1} 按进程树关联父子进程与命令行,典型链如 cmd → rundll32.exe javascript:"..."、regsvr32.exe /s /n /u /i:http://... scrobj.dll、mshta.exe javascript:...、powershell -enc ...。最后与检测侧对齐,输出规避手法清单与对应 IOC,结论标注验证环境(OS/EDR/杀软版本)。
限制:分析须在沙箱隔离环境内进行,工具先验证再使用;patch 偏移随 Windows 补丁与 EDR hook 版本变化,不应依赖硬编码偏移;无文件样本取证依赖运行前内存转储与日志配置(Sysmon ProcessCreate、PowerShell 4104);规避手段常与反沙箱检测交织,需与反分析、行为观察等分支配合。