Lightweight code integrity solution with byte-pattern entanglement in program code
AssigneeZimperium, Inc.
InventorsGrant Stewart Goodes, Javier Lopez Gomez, Ricards Dzenis, Peteris Ledins
Life of this patent
Estimating the term…
Abstract
A system and a method are disclosed for providing a lightweight code integrity solution. The system identifies one or more target code blocks in program code and determines one or more locations in the program code where an integrity check is to be embedded to verify the integrity of the code block. The system may determine an integer value associated with a byte-pattern of machine-code instructions in the code blocks and generates the integrity check by entangling the integer value into one or more computations of the program code. The system embeds the integrity check at the determined location in the program code.
Claims20
A method comprising:
- identifying a code block in program code, the code block comprising one or more target instructions for protection;
- determining a location in the program code where an integrity check is to be embedded to check the integrity of the code block;
- determining an integer value associated with a byte-pattern in the code block;
- generating the integrity check by entangling the integer value into a computation of the program code;
- and
- embedding the integrity check at the determined location in the program code.
A non-transitory computer readable medium configured to store instructions, the instructions when executed by one or more processors causing the one or more processors to perform operations comprising:
- identifying a code block in program code, the code block comprising one or more target instructions for protection;
- determining a location in the program code where an integrity check is to be embedded to check the integrity of the code block;
- determining an integer value associated with a byte-pattern in the code block;
- generating the integrity check by entangling the integer value into a computation of the program code;
- and
- embedding the integrity check at the determined location in the program code.
A system comprising memory with instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
- identifying a code block in program code, the code block comprising one or more target instructions for protection;
- determining a location in the program code where an integrity check is to be embedded to check the integrity of the code block;
- determining an integer value associated with a byte-pattern in the code block;
- generating the integrity check by entangling the integer value into a computation of the program code;
- and
- embedding the integrity check at the determined location in the program code.
Dependencies are inferred from the claim text.