Abstract

The main goal of obfuscation is to make software difficult to analyze. Although obfuscation is one useful method to protect programs, the ability to analyze malware is greatly reduced if used for malicious purposes. The obfuscation technique is most applicable at the binary level, but it can also be applied at the source code level. Although source-level techniques can be applied regardless of the target platform, these are often optimized and eliminated during compilation. However, when control-flow obfuscation is applied at the source code level, removal is not possible. When applied for malicious purposes, the ability to analyze the source code and compiled binary code is greatly reduced. To date, no research has presented a method that increases the readability of source code or the ability to analyze compiled binaries via optimization at the source level. In this paper, we select a very powerful obfuscation tool that provides options, including control-flow obfuscation, at the source level. The result of our research is a tool that outputs optimized source code and performs control-flow reconstruction as preprocessing, which increases readability even when control-flow obfuscation has been applied. The results also suggest an improvement in the ability to analyze binary code. As a result, more than 70% of the source code can be optimized at the source level, and the control-flow graph can be serialized. The optimized source code compiles more concise binary code even if no compiler optimizations are applied. Finally, the paper concludes by presenting the results of a module that prevents deobfuscation through code tampering (preventive obfuscation) at the source code level.

Highlights

  • As software becomes increasingly important in modern society, infringements of software intellectual property rights (IPR) and attacks on software vulnerability are becoming grave concerns

  • The results show the degree of optimization performed by SCORE in terms of the number of source code lines in the optimized code and the elapsed time for optimization

  • For SCORE evaluation, we select C/C++ compilers and compare the optimization done by SCORE with the optimization techniques provided by selected compilers; we present the optimized function size, number of optimized function assembly lines, and the control-flow graph

Read more

Summary

INTRODUCTION

As software becomes increasingly important in modern society, infringements of software intellectual property rights (IPR) and attacks on software vulnerability are becoming grave concerns. This paper considers two locations for obfuscation techniques in software: at the source code level and the binary level—or both [5].1. As some information is lost in the process of compiling binary code, binary-level obfuscation, through binary rewriting, poses challenges Despite this difficulty, binary-level obfuscation techniques can be designed to require precise target addresses or assembly code, unlike source-level techniques. Binary is the last phase of software development This suggests a clear advantage of applying obfuscation at the binary level, in that obfuscated parts would not removed by an subsequent process, such as code optimization. The selected tool provides control-flow obfuscation techniques, which are rarely provided at the source code level.

RELATED WORKS
IMPLEMENTATION
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call