Combating Control Flow Linearization

Piracy is a persistent headache for software companies that try to protect their assets by investing both time and money. Program code obfuscation as a sub-field of software protection is a mechanism widely used toward this direction. However, effectively protecting a program against reverse-enginee...

Full description

Saved in:
Bibliographic Details
Published inICT Systems Security and Privacy Protection Vol. 502; pp. 385 - 398
Main Authors Kirsch, Julian, Jonischkeit, Clemens, Kittel, Thomas, Zarras, Apostolis, Eckert, Claudia
Format Book Chapter
LanguageEnglish
Published Switzerland Springer International Publishing AG 2017
Springer International Publishing
SeriesIFIP Advances in Information and Communication Technology
Subjects
Online AccessGet full text
ISBN3319584685
9783319584683
ISSN1868-4238
1868-422X
DOI10.1007/978-3-319-58469-0_26

Cover

More Information
Summary:Piracy is a persistent headache for software companies that try to protect their assets by investing both time and money. Program code obfuscation as a sub-field of software protection is a mechanism widely used toward this direction. However, effectively protecting a program against reverse-engineering and tampering turned out to be a highly non-trivial task that still is subject to ongoing research. Recently, a novel obfuscation technique called Control Flow Linearization (CFL) is gaining ground. While existing approaches try to complicate analysis by artificially increasing the control flow of a protected program, CFL takes the exact opposite direction: instead of increasing the complexity of the corresponding Control Flow Graph (CFG), the discussed obfuscation technique decreases the amount of nodes and edges in the CFG. In an extreme case, this means that the obfuscated program degenerates to one singular basic block, while still preserving its original semantics. In this paper, we present the DeMovfuscator, a system that is able to accurately break CFL obfuscation. DeMovfuscator can reconstruct the control flow, making only marginal assumptions about the execution environment of the obfuscated code. We evaluate both the performance and size overhead of CFL as well as the feasibility of our approach to deobfuscation. Overall, we show that even though CFL sounds like an ideal solution that can evade the state of the art deobfuscation approaches, it comes with its own limitations.
ISBN:3319584685
9783319584683
ISSN:1868-4238
1868-422X
DOI:10.1007/978-3-319-58469-0_26