/

Instruction Substitution

Protection ID: instruction_substitution

Instruction Substitution replaces standard CPU instructions with functionally equivalent sequences that produce the same result. This defeats pattern-based analysis tools that identify common operations by their instruction signatures.


Configuration

JSON
{
  "protections": {
    "instruction_substitution": "medium"
  }
}

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


How It Works

Reverse engineering tools and automated analyzers rely on recognizing standard instruction patterns to understand what code does. For example, a simple addition might always compile to the same instruction sequence, making it easy to spot across the binary.

Instruction Substitution breaks this pattern recognition by replacing standard instructions with alternative sequences that compute the same result in a different way. The behavior is identical, but the binary representation no longer matches the patterns that analysis tools expect.

Higher complexity levels produce more elaborate substitutions that are harder to reverse, with a corresponding small increase in code size.


Intensity Levels

LevelDescription
simpleBasic substitutions with minimal overhead
mediumMore varied substitutions that defeat common pattern matchers
complexHighly diverse substitutions for maximum resistance to automated analysis

When to Use

Instruction Substitution is effective against automated binary analysis tools and signature-based detection. It works best when combined with Arithmetic Obfuscation and Register Shuffling for comprehensive instruction-level protection.


Previous
Dead Code Injection