Iterative Code Obfuscation for Software Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional code obfuscation techniques provide only marginally increased security at the expense of significantly increased code size, leading to decreased execution speed, and there is a need for more effective protection methods in software distribution.

Innovation Solution

Iterative code obfuscation involves sequentially applying one or more obfuscation algorithms to computer-executable code, where the output of each algorithm becomes the input for the next, leveraging simple transformations to achieve complex and secure code structures through emergent behavior.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional code obfuscation techniques are applied, then security is marginally increased, but code size increases significantly leading to decreased execution speed

Engineering Contradiction:
ImprovesecurityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the code obfuscation process into multiple independent transformation passes, each applying a specific obfuscation technique (e.g., control flow flattening, data encryption, instruction substitution). By segmenting the overall obfuscation into discrete, manageable transformations, the system can apply only necessary iterations to achieve desired security levels without excessive code bloat, thus maintaining better execution performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic obfuscation where transformation rules and iteration counts are configurable based on security requirements. The system can adaptively apply different numbers of iterations and select specific transformation types dynamically, allowing optimization between security strength and execution speed depending on the application context, rather than applying fixed aggressive obfuscation to all code.

Inventive Principle:
Principle #15Dynamics

2Reliability

If conventional code obfuscation techniques are applied, then security is marginally increased, but code size increases significantly

Engineering Contradiction:
ImprovesecurityVSAvoidcode size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies partial obfuscation by allowing selective application of transformation rules to specific code regions or functions based on their security sensitivity. Not all code requires the same level of obfuscation, so the system can apply transformations partially to critical sections while leaving less sensitive code more readable, thereby reducing overall code size increase while maintaining security for important portions.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent enables parameter control over obfuscation intensity, including the number of iterations, transformation types, and coverage scope. By adjusting these parameters, the system can achieve adequate security with minimal code size expansion, avoiding the excessive obfuscation that causes significant bloat in conventional approaches.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple obfuscation algorithms are iteratively applied, then security is substantially enhanced, but complexity of the obfuscation process increases

Engineering Contradiction:
ImprovesecurityVSAvoidobfuscation process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal obfuscation framework that can apply multiple different transformation algorithms through a single integrated system. The same infrastructure handles control flow flattening, data encryption, instruction substitution, and other transformations uniformly, managing the complexity internally while presenting a simplified interface. This multi-functional approach enhances security through iterative application without proportionally increasing operational complexity for the user.

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

Data Source

PatentUS7587616B2System and method of iterative code obfuscation
Publication Date: 2009.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7587616B2 patent drawing
  • US7587616B2 patent drawing
  • US7587616B2 patent drawing

AI summary

A method of code obfuscation includes receiving a block of code. One or more obfuscation algorithms are then iteratively applied to the received code. The obfuscation algorithms are repeatedly applied, such that the output of the previous obfuscation algorithm provides the input to the next obfuscation algorithm. Each obfuscation algorithm may be a relatively simple code transform technique. The same obfuscation algorithm may be applied repeatedly or any combination of a plurality of obfuscation algorithms may be applied in any sequence. The cascading effects of applying rounds of obfuscation algorithms achieve obfuscated code exhibiting a significantly increased level of security that cannot be normally derived from the security of each individual algorithm.