Code Obfuscation via Arithmetic and Boolean Operation Replacement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for protecting digital content, such as cryptography, are not always feasible or desirable, and code obfuscation alone does not provide sufficient security against unauthorized access, as it only makes reverse engineering time-consuming but not impossible.

Innovation Solution

A system and method that extract basic arithmetic and Boolean operations from program code, select equivalent computations, and replace them with alternate formulas, which can be randomly or deterministically chosen, to obfuscate the code, making it more difficult to reverse engineer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code obfuscation is used to protect digital content, then reverse engineering becomes time-consuming, but it does not provide sufficient security as unauthorized access remains possible

Engineering Contradiction:
Improvecode securityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent transforms basic arithmetic and Boolean operations into equivalent but more complex forms. For example, addition operations are replaced with sequences involving multiplication and subtraction, and Boolean AND operations are replaced with equivalent logical expressions. This parameter transformation maintains functional equivalence while increasing code complexity to deter reverse engineering.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments simple operations into multiple smaller steps. A single addition operation is divided into several intermediate calculations, and a Boolean operation is broken down into multiple logical steps. This segmentation increases the time and effort required for reverse engineering while preserving the original functionality.

Inventive Principle:
Principle #1Segmentation

2Difficulty of detecting and measuring

If basic operations are replaced with equivalent formulas, then code becomes more difficult to reverse engineer, but code size and execution complexity increase

Engineering Contradiction:
Improvereverse engineering difficultyVSAvoidcode structure complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The patent introduces dynamic selection of equivalent formulas for replacing basic operations. Instead of using a fixed replacement strategy, the system dynamically chooses from multiple equivalent forms based on various criteria, making the obfuscation more adaptive and difficult to analyze while managing code complexity through intelligent selection.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent combines multiple equivalent formulas and replacement strategies into a composite obfuscation approach. By integrating different types of transformations (arithmetic replacements, Boolean replacements, conditional expansions) into a unified system, the patent achieves higher reverse engineering difficulty while managing overall code complexity through coordinated application of multiple techniques.

Inventive Principle:
Principle #40Composite materials

Data Source

PatentUS8935539B2System and method for revising boolean and arithmetic operations
Publication Date: 2015.01.13 APPLE INC
  • US8935539B2 patent drawing
  • US8935539B2 patent drawing
  • US8935539B2 patent drawing

AI summary

Disclosed herein are systems, methods, computer readable media and special purpose processors for obfuscating code. The method includes extracting an operation within program code, selecting a formula to perform the equivalent computation as the extracted operation, and replacing the extracted operation with the selected formula. The formula can be selected randomly or deterministically. The extracted operation can be an arithmetic operation or a Boolean operation.