A Systematic Study on Static Control Flow Obfuscation Techniques in Java

09/28/2018
by   Renuka Kumar, et al.
0

Control flow obfuscation (CFO) alters the control flow path of a program without altering its semantics. Existing literature has proposed several techniques; however, a quick survey reveals a lack of clarity in the types of techniques proposed, and how many are unique. What is also unclear is whether there is a disparity in the theory and practice of CFO. In this paper, we systematically study CFO techniques proposed for Java programs, both from papers and commercially available tools. We evaluate 13 obfuscators using a dataset of 16 programs with varying software characteristics, and different obfuscator parameters. Each program is carefully reverse engineered to study the effect of obfuscation. Our study reveals that there are 36 unique techniques proposed in the literature and 7 from tools. Three of the most popular commercial obfuscators implement only 13 of the 36 techniques in the literature. Thus there appears to be a gap between the theory and practice of CFO. We propose a novel classification of the obfuscation techniques based on the underlying component of a program that is transformed. We identify the techniques that are potent against reverse engineering attacks, both from the perspective of a human analyst and an automated program decompiler. Our analysis reveals that majority of the tools do not implement these techniques, thus defeating the protection obfuscation offers. We furnish examples of select techniques and discuss our findings. To the best of our knowledge, we are the first to assemble such a research. This study will be useful to software designers to decide upon the best techniques to use based upon their needs, for researchers to understand the state-of-the-art and for commercial obfuscator developers to develop new techniques.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/27/2017

Control and Data Flow Execution of Java Programs

Since decade understanding of programs has become a compulsory task for ...
research
12/08/2020

Control Flow Obfuscation for FJ using Continuation Passing

Control flow obfuscation deters software reverse engineering attempts by...
research
01/21/2021

A Critical Comparison on Six Static Analysis Tools: Detection, Agreement, and Precision

Background. Developers use Automated Static Analysis Tools (ASATs) to co...
research
08/12/2022

How far are German companies in improving security through static program analysis tools?

As security becomes more relevant for many companies, the popularity of ...
research
10/01/2019

Towards Cognitive Obfuscation: Impeding Hardware Reverse Engineering Based on Psychological Insights

In contrast to software reverse engineering, there are hardly any tools ...
research
08/25/2019

Testing Neural Program Analyzers

Deep neural networks have been increasingly used in software engineering...
research
12/16/2020

Intertwining ROP Gadgets and Opaque Predicates for Robust Obfuscation

Software obfuscation plays a crucial role in protecting intellectual pro...

Please sign up or login with your details

Forgot password? Click here to reset