Search papers, labs, and topics across Lattice.
PUSHAN, a novel trace-free deobfuscation technique, addresses the limitations of existing methods for analyzing virtualization-obfuscated binaries by using VPC-sensitive, constraint-free symbolic emulation to recover the complete CFG of the virtualized function. Unlike prior work, PUSHAN avoids path-constraint accumulation and reliance on path satisfiability, enabling scalability and the generation of "well-formed" code suitable for decompilation. Evaluation on 1,000+ binaries, including those protected by Tigress, VMProtect, and Themida, demonstrates PUSHAN's ability to successfully deobfuscate and decompile to C pseudocode, facilitating analysis of previously unanalyzed malware.
Deobfuscation just got a whole lot easier: PUSHAN cracks virtualization-obfuscated binaries without relying on brittle trace analysis or expensive symbolic execution.
In the ever-evolving battle against malware, binary obfuscation techniques are a formidable barrier to effective analysis 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, 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 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 reliance on path satisfiability, a known NP-hard problem that hampers scalability. We evaluate PUSHAN on more than 1,000 binaries, including targets protected by academic state of the art (Tigress) and commercial-strength obfuscators VMProtect and Themida. PUSHAN successfully deobfuscates these binaries, retrieves their complete CFGs, and decompiles them to C pseudocode. We further demonstrate 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.