Dynamic Address Generation for Software Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for protecting software against attacks, such as static program analysis, are inadequate in ensuring the integrity and secure execution of software, particularly in preventing unauthorized access and modification.
Innovation Solution
A method where a computer executes security modules and an item of software sends a request to an address system for the address of instructions for a predetermined function, with the address system generating the address based on verification data from the security modules, enhancing security by making static program analysis more difficult.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If static program analysis is used to protect software, then security against attacks is improved, but the complexity of the system increases
Solution Approach 1:
The patent introduces an address system as an intermediary component between the software and the execution environment. This address system receives function identifiers from the software, verifies them against a database of authorized functions, and returns corresponding memory addresses. This mediator approach strengthens security by adding a verification layer without requiring the entire software system to become significantly more complex, as the address system handles the security checks centrally.
2Reliability
If verification data from security modules is required for address generation, then software integrity is improved, but the execution time increases
Solution Approach 1:
The patent implements preliminary action by pre-storing verified function addresses and their corresponding identifiers in a database within the address system. During software execution, the system retrieves the required address by looking up the function identifier in this pre-organized database, rather than performing verification calculations in real-time. This significantly reduces execution time while maintaining integrity, as the heavy verification work is done beforehand during system initialization or function registration.
3Object-affected harmful factors
If dynamic address generation based on verification data is implemented, then protection against static program analysis is improved, but the difficulty of detecting and measuring execution paths increases
Solution Approach 1:
The patent applies dynamics by making the execution address dynamic rather than fixed. Instead of using static memory addresses that can be easily analyzed and predicted, the system generates addresses dynamically based on verified function identifiers and current execution context. This dynamic address generation prevents static program analysis from effectively mapping the software execution paths, as the addresses change based on runtime verification results, while still maintaining measurable and detectable execution flow through the address system's controlled address resolution process.
Data Source
AI summary
A method for a computer to execute an item of software including, the software including one or more security modules. At at least one point during execution of the item of software at which a predetermined function is to be performed, a request is sent to an address system for carrying out the predetermined function, the request including an identifier of the predetermined function. In response to the request, an address generated by the address system based, at least in part, on (a) the identifier and (b) verification data provided to the address system from at least one of the one or more security modules is received from the address system. The address is based, at least in part, on the identifier and verification data provided to the address system from at least one of the security modules. Execution of the item of software is then continued at the address received from the address system.


