Single instruction method of seizing control of program execution flow in a multiprocessor computer system
First Claim
1. A method of hooking an operating system in a computer system, the operating system including program code, said method comprising:
- (a) preparing an area within an address range of a relative branch instruction supported by the computer system by storing in said area an instruction or instructions to be performed or data to be used after hooking; and
(b) inserting into the operating system program code a relative branch instruction that specifies said prepared area, wherein, when executed, said relative branch instruction will direct said operating system to perform the instruction or instructions stored in said prepared area.
9 Assignments
0 Petitions
Accused Products
Abstract
A single-instruction method of diverting or "hooking" the operation of software entails setting up a work area of code at an address within the range of a relative branching instruction type defined in the operating-system architecture. Hooking is accomplished by patching the software in question to insert a single relative-branch instruction. That instruction causes program execution to be diverted to the work area. In one embodiment, the work area is an area of memory that normally is used only for system initialization and thus would not otherwise be executed by the processor system after system initialization is complete.
12 Citations
7 Claims
-
1. A method of hooking an operating system in a computer system, the operating system including program code, said method comprising:
-
(a) preparing an area within an address range of a relative branch instruction supported by the computer system by storing in said area an instruction or instructions to be performed or data to be used after hooking; and (b) inserting into the operating system program code a relative branch instruction that specifies said prepared area, wherein, when executed, said relative branch instruction will direct said operating system to perform the instruction or instructions stored in said prepared area. - View Dependent Claims (2, 3, 7)
-
-
4. A method of dynamically altering a program of instructions, referred to as code, being executed by a computer that supports a relative branch instruction, the method comprising:
-
(a) providing new code within a permissible address range for relative branch instructions by storing in said range an instruction or instructions to be performed or data to be used after hooking; and (b) inserting into the code a relative branch instruction directing the computer system to begin executing the new code, wherein, when executed, said relative branch instruction will direct said operating system to perform the instruction or instructions stored in said prepared area. - View Dependent Claims (5, 6)
-
Specification