Compiler-Based Code Obfuscation for Tamper Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional obfuscation techniques are inefficient and burdensome for developers, as they often provide limited protection against code modification, are easily detectable by sophisticated hackers, and complicate the development process when applied to compiled binaries or during source coding.

Innovation Solution

Compiler-based obfuscation modifies code within the compilation process, using an obfuscation description to specify portions of the code to protect and apply modifications such as encryption, anti-debugging, and tamper detection, generating a compiled version with integrated obfuscation features.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional obfuscation techniques are applied to compiled binaries, then code protection is provided, but the binaries become unstable and the development process becomes more complex and time-consuming

Engineering Contradiction:
Improvecode protectionVSAvoiddevelopment process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies obfuscation transformations during the compilation process rather than post-compilation, performing the protective action before the binary is finalized. This preliminary integration avoids the instability issues of post-hoc obfuscation while maintaining protection effectiveness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges the obfuscation process with the compilation process into a single integrated workflow. The compiler simultaneously performs compilation and obfuscation transformations, eliminating the need for separate obfuscation steps and reducing development process complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If traditional obfuscation techniques are applied to compiled binaries, then code protection is provided, but the process adds complexity and time to the development workflow

Engineering Contradiction:
Improvecode protectionVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent combines obfuscation and compilation into a single unified process. By integrating these operations, the patent eliminates the sequential execution of separate compilation and obfuscation steps, thereby reducing total development time while maintaining protection quality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Obfuscation transformations are performed during compilation rather than as a subsequent step. This preliminary integration allows the protective measures to be applied in advance, eliminating the time loss associated with post-compilation obfuscation processing.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If simple obfuscation techniques are used, then development is easier, but the protection is easily detected by sophisticated hackers

Engineering Contradiction:
Improveease of implementationVSAvoiddetectability by hackers
Core Design Contradiction:
Ease of manufactureVSObject-affected harmful factors

Solution Approach 1:

The patent applies multiple obfuscation transformations that modify various parameters of the code including control flow, data representation, and instruction sequencing. These parameter changes create a multi-layered obfuscation effect that is significantly more difficult to detect and reverse-engineer while remaining integrated in the compilation process.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent employs a composite obfuscation approach combining multiple different transformation techniques (control flow obfuscation, data encryption, instruction substitution) into a unified protection scheme. This composite strategy creates a robust protective layer that resists detection by sophisticated hackers while being automatically applied during compilation.

Inventive Principle:
Principle #40Composite materials

Data Source

PatentEP2962193B1Compiler based obfuscation
Publication Date: 2021.03.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2962193B1 patent drawingFigure 1
  • EP2962193B1 patent drawingFigure 2
  • EP2962193B1 patent drawingFigure 3

AI summary

Compiler based obfuscation is described. To protect portions of a code project with obfuscations, the code is modified within a compiler to produce one or more modifications that obfuscate the code as part of a compilation process. A compiled version of the code is generated having the modifications that are produced within the compiler. In one approach, the compiler is configured to consume an obfuscation description that indicates portions of the code to protect and specifies the modifications to make to the indicated portions. Various different modifications of code may be performed during the compilation process to implement corresponding obfuscation features. For example, the modifications made within a compiler may include, but are not limited to, modifications designed to enable tamper detection, anti-debugging, and/or encryption of the code.