In the ever-evolving battle against malware, binary obfuscation techniques are a formidable barrier to the effective analysis of malware by both human security analysts and automated systems. In particular, virtualization or VM-based obfuscation is one of the strongest protection mechanisms that evade automated analysis. Despite widespread use of virtualization in practice, existing automated deobfuscation techniques suffer from three major drawbacks. First, they only work on execution traces, which prevents them from recovering all logic in an obfuscated binary. Second, they depend on dynamic symbolic execution, which is expensive and does not scale in practice. Third, they cannot generate “well-formed” code, which prevents existing binary decompilers from generating human-friendly decompilation output. This paper introduces PUSHAN, a novel and generic technique for deobfuscating virtualization-obfuscated binaries while overcoming the limitations of existing techniques. PUSHAN is trace-free and avoids path-constraint accumulation by using VPC-sensitive, constraint-free symbolic emulation to recover a complete CFG of the virtualized function. It is the first approach that also decompiles the protected code into high-quality C pseudocode to enable effective analysis. Crucially, PUSHAN circumvents the traditional reliance on path satisfiability, which is a known NP-hard problem that hampers the scalability of existing deobfuscation techniques. We evaluate PUSHAN on a diverse set of more than 1,000 binaries, including targets protected by academic state of the art, Tigress, and by the commercial-strength obfuscators VMProtect and Themida. PUSHAN successfully deobfuscates these binaries, retrieves their complete CFGs, and decompiles them to C pseudocode. We further demonstrate practical applicability by analyzing a previously unanalyzed VMProtect-obfuscated malware sample from VirusTotal, where our decompiled output enables LLM-assisted code simplification, reuse and program understanding, making our approach the first to enable effective end-to-end analysis of code protected by virtualization.
Network and Distributed System Security Symposium (NDSS)
2027-03-22
2026-11-10