Program Integrity Checks Against Reverse Engineering Tampering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing difficulty in securing computer systems against malicious attacks, including reverse engineering and data theft, due to the widespread use of complex computer programs and network communications.

Innovation Solution

Implementing techniques such as generating multiple unique computer programs with randomization, using asymmetric cryptographic schemes, and employing methods to detect unauthorized modifications through time of execution, memory hashing, and variable mapping to ensure program integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If computer programs are made more complex to provide advanced functionality, then program capabilities are improved, but vulnerability to reverse engineering and malicious attacks increases

Engineering Contradiction:
Improveprogram functionalityVSAvoidreverse engineering vulnerability
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The program is divided into multiple code segments with different integrity levels. Critical segments are protected with cryptographic verification while non-critical segments remain accessible. This segmentation allows the program to maintain complex functionality while protecting only the essential parts from reverse engineering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a composite program structure combining protected and unprotected code portions. The protected segments use cryptographic hashing and verification mechanisms, while unprotected segments provide user-facing functionality. This composite approach enables the program to offer advanced features while maintaining security for critical operations.

Inventive Principle:
Principle #40Composite materials

2Reliability

If cryptographic verification is implemented to detect code modification, then program integrity is improved, but computational overhead and execution time increase

Engineering Contradiction:
Improveprogram integrityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of verifying the entire program, the system performs cryptographic verification only on critical code segments. This partial verification approach maintains program integrity for essential functions while minimizing the computational overhead and time loss associated with comprehensive verification.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

Cryptographic hashes of protected code segments are pre-computed and stored during program installation. During execution, the system only needs to verify these pre-computed hashes rather than performing full cryptographic verification, significantly reducing execution time while maintaining integrity checks.

Inventive Principle:
Principle #10Preliminary action

3Object-affected harmful factors

If multiple randomized versions of the same program are generated, then security against reverse engineering is improved, but device complexity and resource requirements increase

Engineering Contradiction:
Improvereverse engineering resistanceVSAvoidsystem complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The patent implements a universal verification mechanism that works across multiple randomized program versions. A single cryptographic hash verification system can validate any version of the program, eliminating the need for separate verification systems for each randomized variant. This reduces device complexity while maintaining security across all versions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3942439B1Detection and prevention of reverse engineering of computer programs
Publication Date: 2025.12.31 CAPZUL LTD
  • EP3942439B1 patent drawingFigure 1
  • EP3942439B1 patent drawingFigure 2
  • EP3942439B1 patent drawingFigure 3

AI summary

Various techniques to detect and prevent reverse engineering of computer programs are disclosed. A program may be used as a key in an asymmetric cryptographic scheme, where modification of the program would destroy its usefulness as a key. An operator may be dispersed among different lines of code, so that unauthorized insertion or removal of lines of code causes the code to fail. Content of memory may be hashed at different times to detect unauthorized memory access. Code may be modified and hashes computed and compared to hashes expected from such modification. A duration of execution may be measured and compared to an expected duration, where deviation from expected may indicated unauthorized modification of code. Variables may be mapped according to a secret agreed logic to thwart eavesdropping. A program may be made labyrinthine and complex, so that its useful flow paths are difficult to discern.