Code integrity protection by computing target addresses from checksums
First Claim
Patent Images
1. A method of obscuring software code of a current basic block of a plurality of basic blocks, comprising:
- calculating, by a processor device, a checksum value of the current basic block of the software code and a pointer to the end of the current basic block;
determining a preceding basic block for the current basic block;
inserting the checksum value for the current basic block into the preceding basic block; and
inserting instructions into the preceding basic block to determine a pointer to the beginning of the current basic block based upon the checksum value of the current basic block.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of obscuring software code including a plurality of basic blocks, including: calculating, by a processor, a checksum value of the current basic block and a pointer to the end of the current basic block; determining a preceding basic block for the current basic block; inserting the checksum value for the current basic block into the preceding basic block; and inserting instructions into the preceding basic block to determine a pointer to the beginning of the current basic block based upon the checksum value of the current basic block.
5 Citations
25 Claims
-
1. A method of obscuring software code of a current basic block of a plurality of basic blocks, comprising:
-
calculating, by a processor device, a checksum value of the current basic block of the software code and a pointer to the end of the current basic block; determining a preceding basic block for the current basic block; inserting the checksum value for the current basic block into the preceding basic block; and inserting instructions into the preceding basic block to determine a pointer to the beginning of the current basic block based upon the checksum value of the current basic block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory machine-readable storage medium encoded with instructions for checking integrity of a basic block next to a current basic block of software code of a plurality of basic blocks for execution by a processor device, the non-transitory machine-readable storage medium comprising:
-
instructions for calculating a checksum value for the next basic block in the processor device; instructions for setting a pointer to the end of the next basic block and inserting the checksum into the current basic block; instructions for determining the beginning of the next basic block using the pointer and the checksum value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method to check the integrity of a basic block next to a current basic block of software code of a plurality of basic blocks for execution by a processor device, comprising:
-
calculating a checksum value for the next basic block in the processor device; setting a pointer to the end of the next basic block and inserting the checksum into the current basic block; and determining the beginning of the next basic block using the pointer and the checksum value. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification