Systems and methods for regulating execution of computer software
First Claim
1. A process for executing an application computer program defining a plurality of subsections, said application computer program configured to run under a control of an operating system and incorporating an execution controller computer program, said process steps comprising:
- substituting an operating system instruction that causes an interrupt for one or more bytes of at least one subsection;
launching the application computer program;
launching the execution controller computer program, where the execution controller computer program is launched by the application computer program;
attaching the execution controller computer program to the application computer program using an operating system debugger interface;
launching a secure debugger computer program, where the secure debugger computer program is launched by the execution controller computer program;
executing the application computer program until an operating system instruction that causes an interrupt is encountered;
after an operating system instruction that causes an interrupt is encountered, restoring the operating system instruction that causes an interrupt with the substituted bytes; and
resuming execution of the application computer program, starting at the restored bytes.
5 Assignments
0 Petitions
Accused Products
Abstract
A method for regulating execution of an application program includes a process for preparing the application and a process for executing the application. The preparation process divides the application program into related segments and encrypts instructions of at least one segment, positions encrypted instructions in at least two discontiguous regions within an executable file, and associates header information with at least one discontiguous region. The execution process initiates execution of the protected application when at least a portion of the application instructions are available to the computer only in encrypted form. Also provided are systems and methods to allow debugging of code extensions to protected applications without sacrificing protection of the application. A Secure Debugger allows extension developers to examine memory and set breakpoints in their own extensions, without permitting them to view information in the rest of the protected application.
-
Citations
20 Claims
-
1. A process for executing an application computer program defining a plurality of subsections, said application computer program configured to run under a control of an operating system and incorporating an execution controller computer program, said process steps comprising:
-
substituting an operating system instruction that causes an interrupt for one or more bytes of at least one subsection; launching the application computer program; launching the execution controller computer program, where the execution controller computer program is launched by the application computer program; attaching the execution controller computer program to the application computer program using an operating system debugger interface; launching a secure debugger computer program, where the secure debugger computer program is launched by the execution controller computer program; executing the application computer program until an operating system instruction that causes an interrupt is encountered; after an operating system instruction that causes an interrupt is encountered, restoring the operating system instruction that causes an interrupt with the substituted bytes; and resuming execution of the application computer program, starting at the restored bytes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A process for executing an application computer program that includes a plurality of subsections having boundaries, said application computer program configured to run under a control of an operating system, said process steps comprising:
-
substituting an operating system instruction that causes an interrupt for one or more bytes of at least one subsection; relocating the substituted bytes to a location in the application computer program this is distinct from the boundaries of the subsection; adding an execution controller computer program into the application computer program; launching the application computer program; launching the execution controller computer program, where the execution controller computer program is launched by the application computer program; attaching the execution controller computer program to the application computer program using an operating system debugger interface; launching a secure debugger computer program, where the secure debugger computer program is launched by the execution controller computer program; executing the application computer program until an operating system instruction that causes an interrupt is encountered; after an operating system instruction that causes an interrupt is encountered, restoring the operating system instruction that causes an interrupt with the substituted bytes; and resuming execution of the application computer program, starting at the restored bytes. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification