Application Code Obfuscation via Dynamic Vector and Native Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveapplication portabilityVSAvoidvulnerability to reverse engineering
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improveprotection levelVSAvoidcode analyzability
Core Design Contradiction:
Object-affected harmful factorsVSDifficulty of detecting and measuring

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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

Engineering Contradiction:
Improvesecurity against reverse engineeringVSAvoidcompilation process complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2897073B1Device for obfuscating application code and method for same
Publication Date: 2017.06.14 FOUND OF SOONGSIL UNIV IND COOP
  • EP2897073B1 patent drawingFigure 1
  • EP2897073B1 patent drawingFigure 2
  • EP2897073B1 patent drawingFigure 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.