用途:分析无文件格式头的裸代码 blob,如漏洞利用载荷、文档或脚本解出的第二层载荷、释放器写入内存的代码。不适用于有完整文件头的程序(属 re-binary-core)或仅需初勘结论(属 re-triage)。
主要能力:从文件、内存、流量三来源提取 shellcode;定位入口(0xEB 短跳、0xE8 call/pop 自定位、解码循环开头);分析 XOR/ROL/ADD/SUB 自解码循环并静态还原;用 Unicorn 无环境模拟执行;解析 Windows API hash(PEB 遍历、djb2/ROR13 对照)推断行为意图。
使用方式:工具包括 python3、unicorn、capstone、binwalk、xxd、objdump,可选 scdbg、msfvenom。安装示例:pip install unicorn、pip install capstone。提取可用 binwalk -e sample.bin、dd、objcopy --dump-section .text=blob.bin、tshark 等。入口扫描用 objdump -D -b binary -m i386 blob.bin。模拟执行需设栈(如 ESP=STACK+0x800),hook_code 跳过 API stub,emu_start 给大上限。
适用场景:载荷带自解码需先还原、需无宿主验证行为、需回答调用哪些 API。
限制:模拟执行属动态执行,默认在沙箱内进行;纯静态提取可免沙箱,但落盘后真实执行须进沙箱。位置无关代码无基址,须按 blob 内偏移分析。编码器变体(如 shikata_ga_nai 动态 key)静态还原会失效,模拟执行为首选。Unicorn 无 OS,需先还原调用约定并 stub API。所有产物应存档 sha256 与路径。