Application Code Obfuscation via Dynamic Vector and Native Conversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application obfuscation methods for Android and Java applications are vulnerable to reverse engineering due to the inclusion of source code information in managed code, which remains structurized and easily analyzable even after obfuscation.
Innovation Solution
An apparatus and method for control flow obfuscation using a dynamic vector, where sensitive codes are converted to native code, encrypted, and managed through a separate vector table, with calling codes dynamically loaded, enhancing security by scrambling identifiers and managing control flow dynamically.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If managed code is used in virtual machine, then application portability and ease of operation are improved, but vulnerability to reverse engineering increases due to structurized code and included source code information
Solution Approach 1:
The patent segments the application code into multiple parts: sensitive codes are separated from general codes, and calling codes are separated from implementation codes. This segmentation prevents reverse engineers from analyzing the complete control flow and logic structure, as the code is distributed across multiple files and components that must be assembled dynamically at runtime.
Solution Approach 2:
The patent introduces dynamic code loading and assembly mechanisms where the final executable structure is not fixed but assembled at runtime. The vector table and calling code mappings are loaded dynamically, making static analysis ineffective. The system transitions from static managed code to a dynamic hybrid structure that combines native and managed code with runtime assembly.
2Object-affected harmful factors
If code obfuscation is applied to managed code, then some level of protection is achieved, but the code remains easily analyzable due to its structurized nature in virtual machine
Solution Approach 1:
The patent introduces an intermediary layer consisting of calling codes that act as mediators between the external environment and the sensitive implementation codes. These calling codes contain obfuscated references and mappings that redirect control flow without exposing the actual sensitive code logic. The intermediary layer prevents direct analysis of the core implementation while maintaining functional connectivity.
Solution Approach 2:
The patent replaces the traditional managed code execution model with a hybrid mechanism that incorporates native code compilation and dynamic loading. Instead of relying solely on virtual machine interpretation of structured bytecode, the system compiles sensitive portions to native machine code and uses dynamic linking, substituting the mechanical VM execution model with a more complex runtime assembly process that resists static analysis.
3Object-affected harmful factors
If sensitive codes are converted to native code, then security against reverse engineering is improved, but device complexity and compilation process complexity increase
Solution Approach 1:
The patent applies local quality by converting only the sensitive portions of the code to native code while keeping non-sensitive code in the managed virtual machine environment. This selective conversion optimizes security for critical sections without requiring the entire application to be rewritten in native code, thereby managing complexity by applying the complex compilation process only where necessary.
Solution Approach 2:
The patent segments the codebase into sensitive and non-sensitive portions, and further divides sensitive code into calling codes and implementation codes. This segmentation allows the complex native compilation process to be applied selectively to only the portions that require enhanced security, rather than the entire application, thus managing overall system complexity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention relates to an apparatus for tamper protection of an application and a method thereof. An apparatus for tamper protection of an application according to the present invention includes: an input unit that receives codes to be used in an application; a code separator that separates the inputted code into sensitive codes requiring application tamper protection and general codes including calling codes for calling the sensitive codes; a code converter that converts the sensitive code into the format of a native code; an encoder that encrypts the sensitive codes and inserts the address of a sensitive code connector storing the address information of the sensitive codes; a controller that separates the calling codes from the general code and registers the calling codes on a management server, and adds a calling code loading routine for requesting the calling codes and a vector table loading routine for requesting a vector table including vector information of the called sensitive codes; and a code combiner that creates an application by combining the obfuscated general codes with the sensitive codes. According to the present invention, it is possible to compensate vulnerability to reverse engineering of a managed code by converting a sensitive code in the codes of an application into a native code and performing encryption of a code protection scheme based of self modification on the converted sensitive code. Accordingly, it is possible to increase security against forgery of an application. Further, since the control flow is changed by a dynamic vector and a calling code for calling a sensitive code converted into a native code and a vector table connecting the calling code are separately managed to be dynamically loaded when an application is executed, it is possible to enhance reverse engineering analysis resistance.