Software Integrity Checks Before Compilation for Malware Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mobile software applications are vulnerable to attacks that compromise security, particularly through device-resident malware, which can modify the application and compromise personal information, necessitating improved integrity checking mechanisms.

Innovation Solution

Integrity checking techniques are integrated into software code before compilation, using stub code to verify application behavior and functionality, and additional integrity checks are inserted to ensure the application's integrity is maintained regardless of compilation processes, with obfuscation techniques to protect the integrity checking code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If integrity checking code is inserted into software code before compilation, then software integrity and security are improved, but device complexity and code size increase

Engineering Contradiction:
Improvesoftware integrityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by inserting integrity checking code into the software source code before compilation occurs. This allows the integrity checking mechanisms to be embedded in the compiled binary automatically, ensuring that verification capabilities are built-in from the start rather than added later. The stub code and integrity checks are integrated during the development phase, making the reliability enhancement inherent to the software structure.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses intermediary elements such as stub code and hash value generation mechanisms that act as mediators between the main software functionality and the integrity verification system. These intermediaries perform the actual integrity checking operations without requiring direct modification of the core application logic, thus maintaining software integrity while managing complexity through dedicated verification components.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If multiple integrity checks are inserted throughout the application code, then measurement precision of application behavior is improved, but device complexity increases

Engineering Contradiction:
Improvebehavior verification accuracyVSAvoidintegrity checking complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the integrity checking process into multiple discrete checkpoints distributed throughout the application code. Each checkpoint performs a specific verification function (such as comparing hash values or validating function calls), allowing precise monitoring of application behavior at critical points without requiring a monolithic complex verification system. This segmented approach enables targeted verification where it is most needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by placing specific types of integrity checks at different locations within the code based on their functional requirements. For example, hash value comparisons are performed at specific function entry/exit points, while other checks are placed at data access points. Each location receives the appropriate verification mechanism tailored to its specific integrity needs, optimizing both precision and complexity management.

Inventive Principle:
Principle #3Local quality

3Object-affected harmful factors

If obfuscation techniques are applied to integrity checking code, then security against malware is improved, but difficulty of detecting and measuring increases

Engineering Contradiction:
Improvemalware resistanceVSAvoidcode analysis difficulty
Core Design Contradiction:
Object-affected harmful factorsVSDifficulty of detecting and measuring

Solution Approach 1:

The patent converts the potential harm of code analysis by malware into a benefit by applying obfuscation techniques to the integrity checking code. The same obfuscation that makes the code difficult for attackers to analyze also protects the verification mechanisms from being bypassed or understood by malicious software. This transforms the difficulty of code analysis from a vulnerability into a security feature, making it harder for malware to compromise the integrity checking system.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS20250272386A1Software integrity checking systems and methods
Publication Date: 2025.08.28 INTERTRUST TECH CORP
  • US20250272386A1 patent drawing
  • US20250272386A1 patent drawing
  • US20250272386A1 patent drawing

AI summary

This disclosure relates to systems and methods generating and distributing protected software applications. In certain embodiments, integrity checking mechanisms may be implemented using integrity checking code in software code prior to compilation into machine code. Following compilation and execution of the application, the introduced code may check the integrity of the application by determining whether the application behaves and/or otherwise functions as expected. By introducing integrity checking in this manner, integrity checking techniques may be injected into the application prior to compilation into machine code and/or independent of the particular manner in which the application is compiled.