Automated Application Code Obfuscation with Iterative Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques for remote application code obfuscation require manual retesting and resubmission of applications, which is inefficient and may damage the application code, and do not effectively prevent reverse engineering.

Innovation Solution

A cloud-based service that instruments the application code, captures input/output data during testing, and automatically generates and tests obfuscated code to ensure functionality and transparency reduction, with iterative adjustments to achieve successful obfuscation without customer intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual retesting and resubmission is used for obfuscated code, then functionality verification is achieved, but time consumption and operational complexity increase significantly

Engineering Contradiction:
Improvefunctionality verificationVSAvoidretesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by automatically generating test cases and executing them against obfuscated code before manual review. The system pre-prepares test inputs and expected outputs, then automatically runs them against the obfuscated code to verify functionality, eliminating the need for time-consuming manual retesting and resubmission cycles.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements self-service by having the obfuscation tool automatically perform functionality verification through automated testing. The tool generates test cases, executes them against the obfuscated code, compares outputs, and determines whether the obfuscation preserved functionality without requiring external manual testing intervention.

Inventive Principle:
Principle #25Self-service

2Reliability

If code obfuscation is applied to prevent reverse engineering, then security is improved, but code transparency and understandability deteriorate

Engineering Contradiction:
Improvetamper protectionVSAvoidcode transparency
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent applies local quality by selectively obfuscating different portions of code with different levels of transformation. Critical security-sensitive sections receive aggressive obfuscation for maximum protection, while other sections maintain higher readability. This localized approach ensures tamper protection where needed while preserving necessary code transparency for maintenance and debugging.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system implements parameter changes by adjusting obfuscation intensity and techniques based on code characteristics and security requirements. Different obfuscation parameters (transformation depth, renaming granularity, control flow manipulation) are applied to different code regions, allowing the system to optimize between security and transparency based on local requirements.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automated testing is implemented for obfuscated code, then productivity is improved, but system complexity increases

Engineering Contradiction:
Improveobfuscation throughputVSAvoidtesting system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the automated testing system into distinct modular components: test case generation module, code execution module, output comparison module, and verification result module. Each component handles a specific aspect of the testing process, making the overall complex system manageable through clear separation of concerns and independent module development.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements universality by designing the automated testing framework to handle multiple obfuscation techniques and code types through a unified interface. The same core testing infrastructure supports different obfuscation methods (control flow obfuscation, data obfuscation, naming obfuscation) without requiring separate testing systems, reducing overall complexity while maintaining high productivity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9946853B1Techniques for application code obfuscation
Publication Date: 2018.04.17 CA TECH INC
  • US9946853B1 patent drawing
  • US9946853B1 patent drawing
  • US9946853B1 patent drawing

AI summary

Techniques for application code obfuscation are disclosed. In one embodiment, the techniques may be realized as a method including receiving application code and testing data associated with the application; automatically generating obfuscated application code from the received application code; automatically testing the obfuscated application code by running the obfuscated application code and inputting at least the recorded inputs from the testing data while recording associated outputs; in response to determining that the associated outputs from automatically testing the obfuscation code do not match the testing data outputs, modifying the obfuscated application code and automatically testing the modified obfuscated application code against the testing data; and, in response to determining that outputs from automatically testing the modified obfuscated application code match the testing data outputs, transmitting the modified obfuscated application code as a successful obfuscation of the application.