Application Code Obfuscation via Self-Conversion and Dummy Insertion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Android applications, like Java applications, remain vulnerable to reverse engineering despite existing obfuscation methods, as source code information like class names, member variable names, and method names are easily identifiable in compiled object code.
Innovation Solution
An apparatus for application code obfuscation based on self-modification separates codes into sensitive and general codes, encrypts sensitive codes, inserts dummy code calls, and uses a vector table to dynamically switch to sensitive code execution, preventing static and dynamic analysis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If source code information (class names, member variable names, method names) is included in compiled object code for structured organization, then code maintainability and readability are improved, but vulnerability to reverse engineering increases
Solution Approach 1:
The patent extracts source code information (class names, member variable names, method names) from the compiled object code structure. By removing these identifiable markers while preserving the functional execution capability, the code becomes unreadable for reverse engineering purposes while maintaining operational functionality. This is achieved through complete obfuscation of the code structure without compromising execution.
Solution Approach 2:
The patent creates a functional copy of the original code that executes the same operations but with completely obscured source code information. The obfuscated code serves as a functional equivalent that cannot be reverse-engineered to reveal the original source code structure, effectively decoupling readability from executability.
2Reliability
If code obfuscation is applied to protect managed code in virtual machines, then security against reverse engineering is improved, but vulnerability to reverse engineering remains
Solution Approach 1:
The patent inverts the traditional obfuscation approach by completely removing source code information rather than merely obscuring it. Instead of trying to hide the code structure, the patent eliminates all identifiable markers (class names, method names, variable names) while preserving functional execution, making reverse engineering fundamentally impossible while maintaining security.
Solution Approach 2:
The patent fundamentally changes the parameters of code representation by transitioning from readable source code information to completely obfuscated form. This parameter change affects the entire code structure, removing all semantic information while preserving operational functionality, thereby eliminating reverse engineering vulnerabilities.
3Reliability
If sensitive codes are encrypted and dummy codes are inserted to prevent analysis, then security against reverse engineering is improved, but code execution complexity increases
Solution Approach 1:
The patent merges the encryption and obfuscation processes into a unified code transformation approach. By combining sensitive code encryption with complete structure obfuscation and dummy code insertion, the patent achieves enhanced security without proportionally increasing execution complexity, as all transformations are applied systematically to the entire codebase.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention relates to an apparatus for tamper protection of an application based of self modification and a method thereof. The apparatus for tamper protection of an application according to the present invention includes: an input unit that receives codes to be used for an application; a code separator that separates the inputted codes into sensitive codes requiring application tamper protection and general codes including sensitive method calling routine for calling the sensitive codes by analyzing the input codes; an encoder that encrypts the sensitive codes and inserts the address of an sensitive code connector storing the address information of the sensitive codes; a controller that converts the sensitive method calling routine to be able to call dummy codes by inserting the dummy codes to the general codes, inserts vector table generator for creating a vector table including vector information of the sensitive codes, to the sensitive codes, and insert a sensitive method calling routine converter, which makes the sensitive method calling routine call the sensitive codes when the application is executed, to the sensitive codes; and a code combiner that creates the application by combining the general codes and the sensitive codes. According to the present invention, since the codes of an application are separated into sensitive codes and general codes and they are encrypted under different environments, it is possible to compensate vulnerability to reverse engineering of a managed code, such that it is possible to increase security against forgery of an application. Further, the sensitive method calling routine for calling sensitive codes is stored to call dummy codes when an application is not executed, and it is converted to actually call sensitive codes, using a self modification scheme when an application is executed, such that it prevents static and dynamic analysis by a hacker.