用途:逆向编译后的二进制(ELF、PE、Mach-O)与字节码产物,用于恢复算法、校验输入或构建静态求解器。重点覆盖 CTF 与恶意软件分析中常见的模式:宿主二进制加载一个自定义 ISA 的“程序”文件。
主要能力:识别调度循环,将操作码映射为 Python lambda,在纯 Python 中反演变换链而不执行宿主程序;处理 callfuscation(控制流分块)、MBA(混合布尔-算术)运算符混淆、加密 handler 技巧,以及三层去混淆流水线;也支持动态方向的 Frida hooking 与反调试绕过。
使用时机:二进制与“程序数据”文件成对给出且二进制像解释器(主题化操作码名、调度 switch/跳转表);反汇编出现 while(true){ op = mem[pc++]; switch(op){...}; } 风格循环或按操作码索引的跳转表;二进制被重度混淆(callfuscation、MBA 包装、.data 中加密 handler 在启动时解密为 RWX);需要在无动态执行条件下恢复算法或校验函数(反调试、架构不符、无 TTY)。资料建议静态优先,比模拟器链更快更可靠。
参考文件:reference/custom-vm-bytecode.md,涵盖识别与反演自定义栈/寄存器/纸带虚拟机、callfuscation 线性化、MBA 运算符识别、加密 handler 解密。
限制:资料未提供具体安装命令、依赖、收费、价格、平台支持和详细使用步骤。