用途:识别、分类并破解原生二进制中的代码混淆,辅助逆向分析。资料强调需区分“加壳”与“混淆”,并区分静态与动态去混淆策略。
主要能力:垃圾代码与不透明谓词识别与移除(可用 z3 证明条件恒真,如 x*(x+1)%2==0);自修改代码(SMC)分析,常见 XOR 解密循环,可在循环结束后断点转储再反编译,或用 Unicorn 模拟解密;控制流平坦化(CFF)恢复,可用符号执行(angr、Triton、miasm)、轨迹恢复或 D-810 插件;movfuscator 识别与反混淆;VM 保护(VMProtect/Themida/Code Virtualizer)处理,含 VM 入口识别(pushad/pushfd)、handler 表提取与去虚拟化;字符串加密恢复(XOR 循环、栈字符串、RC4、AES、自定义编码);导入隐藏恢复(GetProcAddress 哈希查找,ROR13/djb2/CRC32/FNV-1a);反反汇编技巧修正(重叠指令、错位跳转等,可在 IDA 中 U/C 重分析与 patch)。
使用方式:先判断能否运行——可运行先做动态分析,设 API 断点、跟踪执行、运行时转储;不可运行(固件/异架构)走静态。按代码特征决策:大 switch/调度循环→CFF 或 VM;只有 mov→movfuscator;写 .text 的 XOR 循环→SMC;不可能条件→不透明谓词;反汇编异常→手工重分析;字符串不可读→字符串解密;IAT 无导入→导入隐藏。工具链含 IDA Pro/Hex-Rays、Ghidra、D-810、miasm、Triton、REVEN、demovfuscator、x64dbg、Unicorn、Capstone、FLIRT、Binary Ninja。
适用场景:CTF、恶意软件分析、已知保护器脱壳与自定义混淆逆向。
限制:资料未提供具体安装命令、收费与价格、各工具版本要求或效果保证;技术有效性依具体样本与工具环境而定,需自行验证。