Object Code Authorization via Linked MAP File Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing security measures for performance tools used by software developers to debug and optimize graphical applications are vulnerable to unauthorized access, allowing users to reverse-engineer the applications, hardware drivers, and hardware, despite conventional security implementations.
Innovation Solution
A computer-implemented method for author verification and authorization of object code, which involves linking program object code with data blocks to create linked object code and a MAP file, followed by digital signing using a checksum, PE header, and computer-system identifier, and encrypting the signature data block for secure execution and access monitoring.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional security measures are implemented for performance tools, then basic protection is provided, but unauthorized users can still usurp these measures and gain access to performance data through methods like DLL injection, LoadLibrary functions, raw reads, and system-wide counter access
Solution Approach 1:
The patent applies preliminary action by performing authorization verification before the graphical application executes. The system checks authorization status during the loading phase, preventing unauthorized applications from ever reaching execution state. This is implemented through intercepting the application loading process and verifying authorization credentials before allowing the application to access performance counters.
Solution Approach 2:
The patent introduces an intermediary authorization verification mechanism that sits between the application and the performance counter resources. This intermediary layer validates authorization credentials and controls access to counters, preventing direct access by unauthorized applications while allowing legitimate applications to function normally.
2Productivity
If performance tools provide comprehensive information about application and hardware operation, then developers gain useful debugging and optimization insights, but unauthorized users can intercept this information and reverse-engineer the application, drivers, and hardware
Solution Approach 1:
The patent applies local quality by providing different access rights to different applications. Authorized applications receive full access to performance counter data for debugging and optimization, while unauthorized applications receive no access. The system identifies the specific application making the request and applies appropriate authorization rules, ensuring that useful information flows to legitimate developers while protecting intellectual property from unauthorized users.
3Adaptability or versatility
If the system allows multiple applications to access performance counters simultaneously, then comprehensive monitoring is enabled, but unauthorized applications can exploit system-wide counter access to gather information without performing graphical operations
Solution Approach 1:
The patent applies preliminary action by verifying authorization status before allowing any application to access performance counters, regardless of whether the application is performing graphical operations. The system checks authorization credentials during the application loading phase and maintains this authorization state throughout execution, preventing unauthorized information gathering even when applications attempt to access counters without performing graphical work.
Data Source
AI summary
Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.


