On demand code decryption
AssigneeNagravision Sarl
InventorsLaurent Dore, Eric Piret, Yasser Belaidi, Brecht Wyseur
Life of this patent
Estimating the term…
Abstract
A system and a method for protecting code are provided. Extraction of code to be protected takes place during an object-to-object transformation and that code is replaced with fake binary code. The extracted code to be protected may then be encrypted or otherwise obscured and stored in a separate region of an object file. A prior source-to-source file transformation can be provided to isolate and mark the code to be protected, and to inject additional source code to handle later decryption.
Claims13
A method of protecting code comprising:
- identifying code to be protected in an input object file;
- extracting the identified code to be protected from the input object file;
- deleting the identified code from the input object file;
- replacing the identified code with fake junk code to generate a first output object file, the fake junk code being non-randomized code, the first output object file including markers identifying the fake junk code;
- and
- injecting the identified code into a second output object file,
- such that decryption is avoided in a compilation process and wherein the identified code is encrypted or obscured prior to injection into the second output object file.
A system for protecting code, the system comprising:
- processing circuitry that carries out an object-to-object file transformation by being configured to:
- identify code to be protected in an input object file,
- extract the identified code to be protected from the input object file,
- delete the identified code from the input object file,
- replace the identified code with fake junk code in the input object file to generate a first output object file, the fake junk code being non-randomized code, the first output object file including markers identifying the fake junk code, and
- inject the identified code into a second output object file,
- such that decryption is avoided in a compilation process and wherein the identified code is encrypted or obscured prior to injection into the second output object file.
Dependencies are inferred from the claim text.