IP Library Granted Patent US 12,113,899
Granted Patent B2
US 12,113,899 · App. 17/723,998 · Granted Oct 8, 2024

On demand code decryption

Inventors: Laurent Dore (Cheseaux-sur-Lausanne, CH); Eric Piret (Cheseaux-sur-Lausanne, CH); Yasser Belaidi (Cheseaux-sur-Lausanne, CH); Brecht Wyseur (Cheseaux-sur-Lausanne, CH)
Assignee: Nagravision Sàrl
H04L9/32G06F21/14G06F21/56G06F21/602G06F2221/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,113,899
App. No.
17/723,998
Granted
Oct 8, 2024
Kind
B2
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.

Claims (30)

1. 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.

2. The method according to claim 1 , further comprising consolidating the first output object file and the second output object file into a final object file.

3. The method according to claim 1 , further comprising:

identifying relocation directions within the input object file; and

excluding the relocation directions from replacement by the fake junk code.

4. The method according to claim 1 , wherein the fake junk code is selected to resemble real code.

5. The method according to claim 1 , further comprising encrypting the identified code to be protected.

6. The method according to claim 1 , wherein the identifying identifies the code to be protected in the input object file using the markers.

7. The method according to claim 6 , wherein the markers result from the code to be protected being marked in an input source file.

8. The method according to claim 1 , wherein the replacing replaces the identified code with the fake junk code within the markers in the input object file.

9. 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.

10. The system according to claim 9 , wherein the processing circuitry is further configured to consolidate the first output object file and the second output object file in to a final object file.

11. The system according to claim 9 , wherein to perform the object-to-object transformation, the processing circuitry is further configured to:

identify relocation directions within the input object file; and

exclude the relocation directions from replacement by the fake junk code.

12. The system according to claim 9 , wherein the fake junk code is selected to resemble real code.

13. The system according to claim 9 , wherein to perform the object-to-object transformation, the processing circuitry is further configured to encrypt the identified code to be protected.

Assignments (4)
CHANGE OF NAME Recorded May 8, 2023
From: NAGRAVISION SA
To: NAGRAVISION SÀRL
Reel/Frame 063566/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2022
From: E.D.S.I. SAS
To: NAGRAVISION S.A.
Reel/Frame 059697/0432 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2022
From: PIRET, ERIC; BELAIDI, YASSER
To: E.D.S.I. SAS
Reel/Frame 059638/0435 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2022
From: DORE, LAURENT; WYSEUR, BRECHT
To: NAGRAVISION S.A.
Reel/Frame 059638/0510 →
Priority Claims (1)
EP 16305797 · Jun 29, 2016 · regional
Continuity (2)
Continuation 16313273
Related Publication 20220360442A1 · Nov 10, 2022