Abstract
In this research, a new Hybrid Obfuscation Technique was proposed to prevent prohibited Reverse Engineering. The proposed hybrid technique contains three approaches; first approach is string encryption. The string encryption is about adding a mathematical equation with arrays and loops to the strings in the code to hide the meaning. Second approach is renaming system keywords to Unicode to increase the difficulty and complexity of the code. Third approach is transforming identifiers to junk code to hide the meaning and increase the complexity of the code. An experiment was conducted to evaluate the proposed Hybrid Obfuscation Technique. The experiment contains two phases; the first phase was conducting reverse engineering against java applications that do not use any protection to determine the ability of reversing tools to read the compiled code. The second phase was conducting reverse engineering against the proposed technique to evaluate the effectiveness of it. The experiment of the hybrid obfuscation technique was to test output correctness, syntax, reversed code errors, flow test, identifiers names test, methods, and classes correctness test. With these parameters, it was possible to determine the ability of the proposed technique to defend the attack. The experiment has presented good and promising results, where it was nearly impossible for the reversing tool to read the obfuscated code. Even the revealed code did not perform as well as original and obfuscated code.
Highlights
Intellectual property theft is one of the most challenging problems of technological era
The use of popular languages such as java increases an attacker’s ability to steal intellectual property (IP), as the source program is translated to an intermediate format retaining most of the information such as meaningful variables names present in source code [2]
There is a need for development of techniques and schemes to obfuscate sensitive parts of software to protect it from reverse engineering attacks [3]
Summary
Intellectual property theft is one of the most challenging problems of technological era. It is necessary to enhance the source code obfuscation to use different approaches from the renaming techniques in one source file to increase the confusion and complication [12]. Java programming language allows mathematical equations to be used with arrays and loops to encrypt the strings in the source file to create a chaos stream as a method to hide the meaning of it. Obfuscating the code will not create problem while compiling into machine language or byte code To use this hybrid obfuscation technique, certain steps must be followed; first step is to use the object junk renaming obfuscation. The string encryption makes the obfuscation technique more effective in terms of securing the code, as it contains so many symbols that help to confuse the de-compiler while parsing and analysis. This Hybrid Obfuscation Technique was tested to evaluate the effectiveness and correctness of the code with four reversing tools
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.