Control-Flow Deobfuscation using Trace-Informed Compositional Program Synthesis
Benjamin Mariano, Ziteng Wang, Shankara Pailoor, Christian S. Collberg, Isil Dillig
摘要
Code deobfuscation, which attempts to simplify code that has been intentionally obfuscated to prevent understanding, is a critical technique for downstream security analysis tasks like malware detection. While there has been significant prior work on code deobfuscation, most techniques either do not handle control flow obfuscations that modify control flow or they target specific classes of control flow obfuscations, making them unsuitable for handling new types of obfuscations or combinations of existing ones. In this paper, we study a new deobfuscation technique that is based on program synthesis and that can handle a broad class of control flow obfuscations. Given an obfuscated program 𝑃, our approach aims to synthesize a smallest program that is a control-flow reduction of 𝑃 and that is semantically equivalent. Since our method does not assume knowledge about the types of obfuscations that have been applied to the original program, the underlying synthesis problem ends up being very challenging. To address this challenge, we propose a novel trace-informed compositional synthesis algorithm that leverages hints present in dynamic traces of the obfuscated program to decompose the synthesis problem into a set of simpler subproblems. In particular, we show how dynamic traces can be useful for inferring a suitable control-flow skeleton of the deobfuscated program and performing independent synthesis of each basic block. We have implemented this approach in a tool called Chisel and evaluate it on 546 benchmarks that have been obfuscated using combinations of six different obfuscation techniques. Our evaluation shows that our approach is effective and that it produces code that is almost identical (modulo variable renaming) to the original (non-obfuscated) program in 86% of cases. Our evaluation also shows that Chisel significantly outperforms existing techniques.
CCS Concepts: • Security and privacy → Malware and its mitigation; • Software and its engineering → Search-based software engineering.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper13
- DOBF: A Deobfuscation Pre-Training Objective for Programming LanguagesMarie-Anne Lachaux, Baptiste Rozière, Marc Szafraniec, Guillaume LampleNeurIPS 2021 · 被引用 174 次
- Syntia: Synthesizing the Semantics of Obfuscated CodeTim Blazytko, Moritz Contag, Cornelius Aschermann, Thorsten HolzUSENIX Security 2017 · 被引用 99 次
- Predicting the Resilience of Obfuscated Code Against Symbolic Execution Attacks via Machine LearningSebastian Banescu, Christian S. Collberg, Alexander PretschnerUSENIX Security 2017 · 被引用 55 次
- How far we have come: testing decompilation correctness of C decompilersZhibo Liu, Shuai WangISSTA 2020 · 被引用 53 次
- BinRec: dynamic binary lifting and recompilationAnil Altinay, Joseph Nash, Taddeus Kroes, Prabhu Rajasekaran 等EuroSys 2020 · 被引用 51 次
相关 Paper
- Augmenting Search-based Program Synthesis with Local Inference Rules to Improve Black-box DeobfuscationVidal Attias, Nicolas Bellec, Grégoire Menguy, Sébastien Bardin 等CCS 2025
- Loki: Hardening Code Obfuscation Against Automated AttacksMoritz Schloegel, Tim Blazytko, Moritz Contag, Cornelius Aschermann 等USENIX Security 2022
- Large Language Models for Opaque Predicate Resolution: A Universal Control Flow Deobfuscation FrameworkXiao Chen, Qiuyun Wang, Shuwei Wang, Weize Zhang 等FSE 2026
- Chosen-Instruction Attack Against Commercial Code Virtualization ObfuscatorsShijia Li, Chunfu Jia, Pengda Qiu, Qiyuan Chen 等NDSS 2022
- VMHunt: A Verifiable Approach to Partially-Virtualized Binary Code SimplificationDongpeng Xu, Jiang Ming, Yu Fu, Dinghao WuCCS 2018 · 被引用 60 次
