Internal Debugger Control of Execution Path Against External Code Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software security mechanisms are easily bypassed by skilled hackers, allowing unauthorized access, modification, and exploitation of software programs, posing a threat to revenue and intellectual property.
Innovation Solution
Implementing an internal debugger application that utilizes kernel resources to set break-points in the code of a software program, controlling its execution path and preventing external debugger applications from analyzing the code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional software security mechanisms (encrypted passwords, genuity licenses) are used to protect software programs, then basic unauthorized access is blocked, but skilled hackers can easily bypass these mechanisms using memory lifting tools and debugging tools
Solution Approach 1:
The patent introduces an intermediary protection layer between the software code and external debugger tools. This layer monitors and controls debugger access, preventing external debuggers from attaching to protected processes while allowing legitimate debugging operations to proceed
Solution Approach 2:
The system performs preliminary detection and blocking of external debugger tools before they can analyze the software code. By proactively monitoring for debugger attachment attempts and preemptively blocking them, the system prevents hackers from using tools like ProcDump and debugging utilities to extract code information
2Ease of operation
If software programs are made vulnerable to modification by hackers using memory lifting tools and debugging tools, then code analysis and reverse engineering become possible, but software piracy and intellectual property theft increase
Solution Approach 1:
An intermediary protection mechanism is introduced that sits between the software execution environment and external debugging tools. This intermediary layer detects debugger attachment attempts and blocks them, preventing hackers from using memory lifting tools and debuggers to analyze code while maintaining normal software operation
Solution Approach 2:
The patent replaces traditional mechanical security measures (encrypted passwords, license checks) with a more advanced system-based approach using process monitoring, debugger detection, and kernel-level protection mechanisms to prevent code analysis
3Reliability
If encryption is used to hinder hackers from understanding software code, then basic code protection is achieved, but determined hackers can still breach these security mechanisms
Solution Approach 1:
The patent introduces an intermediary protection layer that works in conjunction with existing encryption mechanisms. This layer provides an additional barrier by detecting and blocking debugger tools at the process level, complementing encryption rather than replacing it, thereby enhancing overall security without completely redesigning the system
Data Source
AI summary
A method for blocking external debugger application from analysing code of software program installed on computing device. The method including initializing software program including an application program and an internal debugger application. The software program, upon initialization thereof, instructs internal debugger application to load application program in internal debugger application. The internal debugger application is configured to utilize kernel resources of an operating system of the computing device. The method includes executing internal debugger application to set one or more break-points in code of application program to define execution path for code of application program, executing application program as per defined execution path for code thereof, stopping execution of code of application program upon reaching any of one or more break-points therein, and handing control to internal debugger application to provide an address for next instruction to be executed in defined execution path for code of application program.


