Allocation Table Security Module for Software IP Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In object-oriented programming languages, the protection of intellectual property in software programs is compromised due to the provision of intermediate code, which can be easily disassembled, allowing users to reconstruct or imitate data structures, thereby undermining the security of the original source code.
Innovation Solution
A device and method that utilize a security module with a restricted allocation table to manage subprogram calls, ensuring that access to the association between subprogram calls and subprograms is controlled, either through hardware or software, preventing direct access and allowing only authorized retrieval of subprogram data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If intermediate code is provided for software distribution, then code portability and execution efficiency are improved, but intellectual property protection deteriorates because the code can be easily disassembled and reconstructed
Solution Approach 1:
The patent extracts the allocation table from the main program code and stores it separately in a data structure that is not easily accessible. The allocation table contains the mapping between virtual method calls and actual method implementations, and by separating it, the patent prevents reverse engineering of the complete program structure while maintaining execution efficiency.
Solution Approach 2:
The patent introduces an intermediary layer (the allocation table stored in a less accessible data structure) between the intermediate code and the actual method implementations. This intermediary prevents direct mapping and reverse engineering while allowing the virtual machine to efficiently resolve method calls during execution.
2Adaptability or versatility
If virtual method tables are used for dynamic method binding, then object-oriented programming flexibility is improved, but code complexity increases due to additional data structures and lookup operations
Solution Approach 1:
The patent extracts the allocation table from the traditional virtual method table structure and stores it separately. This reduces the complexity of the main code structure while maintaining the dynamic method binding capability. The separate storage allows the allocation table to be optimized independently without affecting the core program logic.
Solution Approach 2:
The patent applies local quality by storing the allocation table in a data structure with different access characteristics than the main program code. This allows the allocation table to be optimized for its specific purpose (method resolution) while the main program maintains its execution efficiency, creating localized optimizations without global complexity increases.
Data Source
AI summary
A device for processing a program code with a plurality of subprogram calls, a subprogram corresponding to a subprogram call taking place by means of an allocation table, has a security module having the allocation table and a processor for using the program code. Access to the allocation table in the security module is restricted. The processor for using the program code is formed to retrieve, responsive to a request for subprogram data, using authorization information, subprogram data via the allocation table in the security module.


