A code obfuscation technique to prevent reverse engineering
Asish Kumar Dalai, Shakya Sundar Das, Sanjay Kumar Jena
Abstract
Asish Kumar Dalai, Shakya Sundar Das, Sanjay Kumar Jena
Abstract
Reverse engineering is the process of decompiling and disassembling the executables to recover the source code/assembly code embedded within it. While reverse engineering is the process of examining the code, in offensive context the attackers can re-engineer the code which leads to software piracy. Software anti-tamper technology like obfuscation is used to deter both reverse engineering and re-engineering of proprietary software and software-powered systems. Code obfuscation, as a part of software protection, got commercial interest from both vendors and as well as from the clients. Vendors want to keep their proprietary code as secret and customers needs software upon which they can trust. In this article, a code obfuscation technique has been proposed to complicate the process of reverse engineering. The basic idea is to conceal the proprietary code section by using preventive design obfuscation and insertion of self-modifying code at the binary level. The combination of design level obfuscation and the insertion of self-modifying code converts the code into a semantically equivalent one that makes it difficult to reverse engineer. The technique is evaluated using different sorting algorithms. The experimental results quantify the degree of obfuscation, stealth of the code, and effects on execution time and code size.
OpenAlex reports 11 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.
Reverse engineering is the process of decompiling and disassembling the executables to recover the source code/assembly code embedded within it. While reverse engineering is the process of examining the code, in offensive context the attackers can re-engineer the code which leads to software piracy. Software anti-tamper technology like obfuscation is used to deter both reverse engineering and re-engineering of proprietary software and software-powered systems. Code obfuscation, as a part of software protection, got commercial interest from both vendors and as well as from the clients. Vendors want to keep their proprietary code as secret and customers needs software upon which they can trust. In this article, a code obfuscation technique has been proposed to complicate the process of reverse engineering. The basic idea is to conceal the proprietary code section by using preventive design obfuscation and insertion of self-modifying code at the binary level. The combination of design level obfuscation and the insertion of self-modifying code converts the code into a semantically equivalent one that makes it difficult to reverse engineer. The technique is evaluated using different sorting algorithms. The experimental results quantify the degree of obfuscation, stealth of the code, and effects on execution time and code size.
Key concepts: Obfuscation, Reverse engineering, Computer science, Executable, Dead code, Code (set theory), Software engineering, Software