Obfuscation by code fragmentation to evade reverse engineering
Vivek Balachandran, Sabu Emmanuel, Wee Keong Ng
Abstract
Vivek Balachandran, Sabu Emmanuel, Wee Keong Ng
Abstract
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.
OpenAlex reports 8 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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.
Key concepts: Reverse engineering, Obfuscation, Computer science, Control flow, Block (permutation group theory), Dead code, Static program analysis, Binary code