/

Arithmetic Obfuscation

Protection ID: arithmetic_obfuscation

Arithmetic Obfuscation transforms simple arithmetic operations into complex equivalent expressions that produce the same result. This makes it significantly harder to understand what computations the code is performing.


Configuration

JSON
{
  "protections": {
    "arithmetic_obfuscation": "medium"
  }
}

Available levels: "simple", "medium", "complex".


How It Works

Arithmetic operations in compiled code are straightforward to understand. An addition, subtraction, or comparison compiles to recognizable instructions that an analyst can immediately interpret.

Arithmetic Obfuscation replaces these simple operations with mathematically equivalent expressions that are far more complex. The computation produces exactly the same result, but the relationship to the original operation is obscured. An analyst must solve the mathematical equivalence to understand what the code actually computes.

This is particularly effective for protecting calculations related to pricing, licensing, scoring, encryption keys, or any numerical logic that reveals business rules.


Intensity Levels

LevelDescription
simpleBasic expression expansion with minimal overhead
mediumMore elaborate transformations that resist manual simplification
complexHighly intricate expressions requiring advanced mathematical analysis to simplify

When to Use

Arithmetic Obfuscation is recommended for applications containing pricing calculations, license validation, scoring algorithms, or any code where understanding the numerical operations would reveal business logic. It is most effective when combined with Instruction Substitution for comprehensive expression-level protection.


Previous
Opaque Predicates