Tamper-Resistant Code via Automated Obfuscation and Runtime Mediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing code obfuscation techniques for creating tamper-resistant software often require manual modification and complete restructuring of software, especially when parts must run in a tamper-resistant interpretive environment with system service restrictions.

Innovation Solution

A system and method that translates object code blocks into tamper-resistant code using a translator unit, which includes applying obfuscation techniques and providing runtime support for system calls, with a tamper-resistance policy to deny service for certain calls, thereby enhancing security without manual intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code obfuscation techniques are applied to create tamper-resistant software, then security is improved, but the complexity of the code increases and manual modification is required

Engineering Contradiction:
ImprovesecurityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime support library as an intermediary between the obfuscated code and the system services. This library handles system call translations and provides necessary services without requiring direct modifications to the obfuscated code, thereby reducing code complexity while maintaining security.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces manual code modification mechanisms with an automated translation system. The runtime support library automatically translates system calls and provides services dynamically, eliminating the need for manual intervention in the code obfuscation process.

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

2Reliability

If code is modified to run in a tamper-resistant interpretive environment, then security is improved, but the software requires complete restructuring

Engineering Contradiction:
ImprovesecurityVSAvoidsoftware restructuring
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the software into two parts: the obfuscated application code that runs in the protected environment, and the runtime support library that handles system service requirements. This segmentation allows the application to maintain its original structure while the support library provides necessary services, avoiding complete restructuring.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The runtime support library acts as a mediator between the obfuscated code and the operating system services. It translates system calls and provides services without requiring the obfuscated code to be completely restructured for the protected environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If additional instructions are added to confuse attackers, then security is improved, but the code requires manual modification and verification

Engineering Contradiction:
ImprovesecurityVSAvoidmanual verification
Core Design Contradiction:
ReliabilityVSExtent of automation

Solution Approach 1:

The patent replaces manual verification processes with automated runtime verification. The runtime support library automatically verifies system calls and provides services based on the obfuscated code's needs, eliminating the need for manual verification of additional instructions.

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

Solution Approach 2:

The obfuscated code with additional instructions verifies its own requirements through the runtime support library, which automatically provides necessary services. This self-service mechanism eliminates the need for external manual verification while maintaining security.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8694802B2System and method for creating tamper-resistant code
Publication Date: 2014.04.08 APPLE INC
  • US8694802B2 patent drawing
  • US8694802B2 patent drawing
  • US8694802B2 patent drawing

AI summary

A system and method for creating tamper-resistant code are described herein. In one embodiment, the method comprises receiving a first object code block. The method also comprises translating the first object code block into a second code block, wherein the translating includes applying taper-resistance techniques to the first object code block or the second object code block. The method also comprises executing the second object code block.