DYNAMIC MEMORY PROTECTION
First Claim
1. A computer implemented method of generating code files adjusted to apply dynamic memory protection, comprising:
- receiving at least one code file comprising a plurality of routines, the at least one code file was created for execution by at least one processor using a dynamic memory region supporting run-time dynamic allocation of memory blocks;
adjusting the at least one code file by;
analyzing the at least one code file to identify at least one exploitation vulnerable routine of the plurality of routines, andadding a memory integrity code segment configured to detect, upon execution completion of the at least one vulnerable routine, a write operation exceeding from a memory space of at least one of a subset of most recently allocated blocks of a plurality of blocks allocated in the dynamic memory region to a memory space of an adjacent one of the plurality of blocks using at least one of a plurality of markers inserted in the dynamic memory region in at least one boundary of each of the blocks of the subset; and
outputting the at least one adjusted code file;
wherein, in runtime, in case the write operation is detected, the memory integrity code segment causes the at least one processor to initiate at least one predefined action.
1 Assignment
0 Petitions
Accused Products
Abstract
Presented herein are methods and systems for adjusting code files to apply memory protection for dynamic memory regions supporting run-time dynamic allocation of memory blocks. The code file(s), comprising a plurality of routines, are created for execution by one or more processors using the dynamic memory. Adjusting the code file(s) comprises analyzing the code file(s) to identify exploitation vulnerable routine(s) and adding a memory integrity code segment configured to detect, upon execution completion of each vulnerable routine, a write operation exceeding from a memory space of one or more of a subset of most recently allocated blocks allocated in the dynamic memory to a memory space of an adjacent block using marker(s) inserted in the dynamic memory in the boundary(s) of each of the subset'"'"'s blocks. In runtime, in case the write operation is detected, the memory integrity code segment causes the processor(s) to initiate one or more predefined actions.
-
Citations
34 Claims
-
1. A computer implemented method of generating code files adjusted to apply dynamic memory protection, comprising:
-
receiving at least one code file comprising a plurality of routines, the at least one code file was created for execution by at least one processor using a dynamic memory region supporting run-time dynamic allocation of memory blocks; adjusting the at least one code file by; analyzing the at least one code file to identify at least one exploitation vulnerable routine of the plurality of routines, and adding a memory integrity code segment configured to detect, upon execution completion of the at least one vulnerable routine, a write operation exceeding from a memory space of at least one of a subset of most recently allocated blocks of a plurality of blocks allocated in the dynamic memory region to a memory space of an adjacent one of the plurality of blocks using at least one of a plurality of markers inserted in the dynamic memory region in at least one boundary of each of the blocks of the subset; and outputting the at least one adjusted code file; wherein, in runtime, in case the write operation is detected, the memory integrity code segment causes the at least one processor to initiate at least one predefined action. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A system for generating code files adjusted to apply dynamic memory protection, comprising:
-
a program store storing a code; and at least one processor coupled to the program store for executing the stored code, the code comprising; code instructions to receive at least one code file comprising a plurality of routines, the at least one code file was created for execution by at least one processor using a dynamic memory region supporting run-time dynamic allocation of memory blocks; code instructions to adjust the at least one code file by; analyzing the at least one code file to identify at least one exploitation vulnerable routine of the plurality of routines, and adding a memory integrity code segment configured to detect, upon execution completion of the at least one vulnerable routine, a write operation exceeding from a memory space of at least one of a subset of most recently allocated blocks of a plurality of blocks allocated in the dynamic memory region to a memory space of an adjacent one of the plurality of blocks using at least one of a plurality of markers inserted in the dynamic memory region in at least one boundary of each of the blocks of the subset; and code instructions to output the at least one adjusted code file; wherein, in runtime, in case the write operation is detected, the memory integrity code segment causes the at least one processor to initiate at least one predefined action.
-
-
34. A computer program executable file generated from at least one code file adjusted to support dynamic memory protection, comprising:
-
a non-transitory computer readable storage medium; and a plurality of program instructions each of a respective one of a plurality of routines of an executable file generated from at least one adjusted code file for execution by at least one processor using a dynamic memory region supporting run-time dynamic allocation of memory blocks, the at least one adjusted code file is adjusted to support dynamic memory protection by adding a memory integrity code segment configured to detect, upon execution completion of at least one exploitation vulnerable routine of the plurality of routines, a write operation exceeding from a memory space of at least one of a subset of most recently allocated blocks of a plurality of blocks allocated in the dynamic memory region to a memory space of an adjacent one of the plurality of blocks using at least one of a plurality of markers inserted in the dynamic memory region in at least one boundary of each of the blocks of the subset; wherein the plurality of program instructions are executed by the at least one processor from the non-transitory computer readable storage medium.
-
Specification