Obfuscation by code fragmentation to evade reverse engineering
Vivek Balachandran, Sabu Emmanuel, Wee Keong Ng · 2014
Software distributed can be reverse engineered using software analyzing tools, thereby letting an adversary understand the logic of the program and finding the vulnerabilities in the program. Control flow obfuscation is one of the techniques that can obscure the program so that the reverse engineering tools get an erroneous result while analyzing the program. In this paper, we propose a binary obfuscation algorithm that makes it difficult to reverse engineer the programs. The basic idea is to fragment the binary code by moving instruction sets from various parts of the program to a new code block. The control flow, to and from the new code block, is camouflaged using dynamic instruction modification during runtime. Experimental results indicate that the algorithm performs well against reverse engineering attacks by standard tools.