Safer mechanism for using pointers to code
First Claim
1. A computer-implemented method for mitigating damage to data caused by a computer process having a corrupted pointer, the method comprising:
- receiving, by at least one computer processor, a pointer to a memory address, the pointer received in conjunction with a command by the computer process to access data stored at the memory address, wherein the data is intended to be stored in a memory segment that allows for read-only access, wherein the data comprises a function pointer to an executable code function;
analyzing, by at least one computer processor, the memory segment that includes the memory address to determine a modification state for the memory segment, wherein the modification state indicates the type of access that the memory segment allows; and
halting, by at least one processor, the computer process when the modification state indicates that the memory segment allows for other than read-only access.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer storage mediums are provided for mitigating damage to data caused by a computer process having a corrupted pointer. An exemplary method includes receiving a pointer to a memory address. The pointer is received in conjunction with a command of the computer process to access data stored at the memory address, where the data is intended to be stored in a memory segment that allows for read-only access. The memory segment that includes the memory address is analyzed to determine a modification state for the memory segment, where the modification state indicates the type of access that the memory segment allows. The computer process is halted when the modification state indicates that the memory segment allows for other than read-only access.
10 Citations
19 Claims
-
1. A computer-implemented method for mitigating damage to data caused by a computer process having a corrupted pointer, the method comprising:
-
receiving, by at least one computer processor, a pointer to a memory address, the pointer received in conjunction with a command by the computer process to access data stored at the memory address, wherein the data is intended to be stored in a memory segment that allows for read-only access, wherein the data comprises a function pointer to an executable code function; analyzing, by at least one computer processor, the memory segment that includes the memory address to determine a modification state for the memory segment, wherein the modification state indicates the type of access that the memory segment allows; and halting, by at least one processor, the computer process when the modification state indicates that the memory segment allows for other than read-only access. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for mitigating damage to data caused by a computer process having a corrupted pointer, the system comprising:
-
a memory; and a computer processor coupled to the memory and configured to; receive a pointer to a memory address of the memory, the pointer received in conjunction with a command by the computer process to access data stored at the memory address, wherein the data is intended to be stored in a memory segment that allows for read-only access, wherein the data comprises a function pointer to an executable code function; analyze the memory segment that includes the memory address to determine a modification state for the memory segment, wherein the modification state indicates the type of access that the memory segment allows; and halt the computer process when the modification state indicates that the memory segment allows for other than read-only access. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer readable storage medium having instructions encoded thereon that, when executed by a computing device, causes the computing device to perform operations comprising:
-
receiving a pointer to a memory address, the pointer received in conjunction with a command by the computer process to access data stored at the memory address, wherein the data is intended to be stored in a memory segment that allows for read-only access, wherein the data comprises a function pointer to an executable code function; analyzing the memory segment that includes the memory address to determine a modification state for the memory segment, wherein the modification state indicates the type of access that the memory segment allows; and halting the computer process when the modification state indicates that the memory segment allows for other than read-only access. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer-implemented method for compiling a computer programming language in order to mitigate damage to data caused by a resulting computer program that, when executed, has a corrupted pointer that references executable instructions, the method comprising:
-
analyzing, by at least one computer processor, a block of code to determine a jump instruction to the executable instructions; inserting, before the jump instruction, by at least one computer processor, one or more verification instructions that, when executed, verify that a pointer to the executable instructions referenced by the jump instruction reside in a read-only memory location; inserting, before the jump, by at least one computer processor, one or more halt instructions that, when executed, halt the computer program when the pointer to the executable instructions referenced by the jump instruction reside in a writable memory location.
-
Specification