用途:分析无容器(无 PE/ELF/Mach-O 头)的原始 shellcode 与位置无关代码。适用于从漏洞利用、宏、加载器、JS/HTA 投递器、抓包或 RWX 内存中提取的原始字节,以及疑似 Metasploit stager 或 Cobalt Strike beacon stage。若样本是正常可执行文件、已打包程序或需先做内存取证,应改用对应技能。
主要能力与用法:
- 先取字节:将 \x/0x 转义、C 数组、base64、单字节 XOR 等归一化为原始二进制,再用 file、wc、ent、binwalk 观察大小与熵。
- 初筛:用 xxd 看头部,依据 55 8B EC、64 A1 30 00、65 48 8B 等特征猜架构,识别 call/pop、fnstenv 等 GetPC 技巧、egg-hunter 标记、免空/全可打印编码。
- 按正确基址反汇编:用 objdump -D -b binary -m i386 / i386:x86-64、ndisasm -b 32/64、rasm2、r2 加载原始 blob,并在 Ghidra/IDA/Cutter 中按 raw binary 导入、设定处理器与入口点。
- 解码自解码器:识别 xor/add/sub/rol 循环 stub,包括 shikata_ga_nai 多态反馈 XOR,通过执行而非特征匹配来解码;可用 scdbg -f sc.bin -s -1 提升步数上限并 dump 解码内存。
- API 哈希解析:识别 PEB walk(fs:[0x30]/gs:[0x60])与 ror13、djb2 等导出哈希,用 Python 复现算法反查常量。
- 模拟执行:scdbg -f sc.bin、/findsc、-foff,speakeasy --raw --arch x86|amd64,Unicorn/Qiling 自定义 harness,或在 x32dbg/x64dbg 配合 blob_runner 等单步。
- 识别 stage 与家族:区分 reverse_tcp/reverse_https、Cobalt Strike beacon 配置,提取 C2 主机、端口、URI、UA 等 IOC,并转交相应技能继续分析。
限制与安全纪律:实际运行 shellcode 属引爆行为,须在隔离 VM、快照、无网络或伪造 C2 环境中进行;不要让 stager 回调真实 C2。缺少入口点时自动分析器易把数据当代码,需显式设定架构与真实入口。未提供的内容(如价格、平台支持范围等)暂未提供。