Software Interlocking for Tamper-Resistant Program Behavior
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software protection methods fail to provide strong, targeted, and localized protection for specific software-mediated behaviors, leading to vulnerabilities in software against tampering and control flow attacks.
Innovation Solution
The method involves dividing source code into basic blocks of logic, modifying some blocks to extend their outputs and others to extend their inputs, creating dependencies such that tampering with one block causes malfunctioning in others, thereby inducing aggressive fragility and preventing behavioral changes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software protection methods are applied, then software security is improved, but the protection is not targeted or localized to specific behaviors
Solution Approach 1:
The patent segments software into basic blocks and identifies specific interlocked basic blocks that mediate particular behaviors. This segmentation enables targeted protection by applying protection mechanisms only to selected basic blocks rather than the entire software, thus providing localized security while maintaining adaptability to protect specific behaviors.
Solution Approach 2:
The patent applies different protection qualities to different parts of the software. Interlocked basic blocks receive enhanced protection through interlocking mechanisms that create dependencies, while non-critical blocks remain unprotected. This local quality approach ensures that targeted behaviors receive strong protection without unnecessarily protecting all software portions.
2Reliability
If code is modified to create dependencies between blocks, then tamper resistance is improved, but code complexity increases
Solution Approach 1:
The patent divides code into basic blocks and selectively interlocks only specific blocks rather than creating universal dependencies throughout the entire codebase. This segmentation limits the propagation of complexity to only those areas where protection is needed, maintaining lower overall code complexity while achieving high tamper resistance for critical behaviors.
Solution Approach 2:
The patent applies interlocking mechanisms partially to only certain basic blocks that mediate specific behaviors, rather than applying the mechanism to all code. This partial action approach achieves sufficient tamper resistance for critical sections without the excessive complexity that would result from universal application of the interlocking mechanism.
Data Source
AI summary
A method for rendering a software program resistant to reverse engineering analysis. At least one first expression in a computational expression or statement of the software program is replaced with a second expression. The first expression being simpler than said second expression and the second expression being based on a value or variables found in said first expression. The second expression produces a value which preserves the value of said first expression. The conversion of the first expression is performed according to a mathematical identity of the form Σi=1k ai ei=E, where ai, are coefficients, ei, are bitwise expressions, whether simple or complex, and E is said first expression.


