IP Library Granted Patent US 8,028,340
Granted Patent B2
US 8,028,340 · App. 12/551,673 · Granted Sep 27, 2011

Piracy prevention using unique module translation

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 8,028,340
App. No.
12/551,673
Granted
Sep 27, 2011
Kind
B2
Abstract

A method for providing solidified software in a computing environment includes creating a new reference for a function in a function table; copying an address of the function and associating the address with the new reference; replacing the address associated with an old reference of the function with a dummy address; and substituting each old reference in normal code with the new reference, where injected code is not able to execute in the computing environment. The function table entries can be further randomized by reordering the entries, introducing intermediate mappings, or providing non-operative entries. Alternatively, all or part of the code of the function can be copied and moved to a different storage location and associated with the new reference. The copied code can be further randomized by the insertion of dummy code, utilizing reverse peephole techniques, varying the size of the copied portion, or interleaving non-operative code.

Claims (54)

1. A method comprising:

creating a new reference for a function in a function table of a computer;

copying an original address of the function;

associating the original address to the new reference in the function table;

associating an original reference to a dummy address in the function table; and

interleaving non-operating entries into the function table.

2. The method of claim 1 , further comprising:

receiving injected code; and

directing the injected code to the dummy address.

3. The method of claim 2 , wherein the injected code comprises a set of instructions that do not have authorization to be executed on the computer.

4. The method of claim 1 , further comprising:

randomizing entries in the function table for a plurality of functions associated with new references.

5. The method of claim 1 , further comprising:

providing an intermediate mapping for entries in the function table for a plurality of functions associated with the new reference.

6. The method of claim 1 , further comprising:

scanning original code for the function; and

substituting a reference to the function in the original code with the new reference.

7. The method of claim 1 , further comprising:

copying original code for the function, wherein the original code for the function is stored at a first storage location of the computer; and

placing the copied code in a second storage location of the computer.

8. The method of claim 7 , wherein copying the original code comprises copying only a portion of the original code.

9. The method of claim 7 , further comprising:

replacing the original code for the function with dummy code provided in the first storage location of the computer.

10. Logic encoded in one or more tangible non-transitory media that includes code for execution and when executed by a processor is operable to perform operations comprising:

creating a new reference for a function in a function table of a computer;

copying an original address of the function;

associating the original address to the new reference in the function table;

associating an original reference to a dummy address in the function table;

providing an intermediate mapping for entries in the function table for a plurality of functions associated with new references; and

randomizing entries in the function table for the plurality of functions associated with the new references.

11. The logic of claim 10 being further operable to perform operations, comprising:

receiving injected code; and

directing the injected code to the dummy address, wherein the injected code comprises a set of instructions that do not have authorization to be executed on the computer.

12. The logic of claim 10 being further operable to perform operations, comprising:

scanning original code for the function; and

substituting a reference to the function in the original code with the new reference.

13. The logic of claim 10 being further operable to perform operations, comprising:

copying original code for the function, wherein the original code for the function is stored at a first storage location of the computer; and

placing the copied code in a second storage location of the computer.

14. An apparatus comprising:

a processor;

a memory; and

an interface operable to communicate with the memory, wherein the interface is configured to:

create a new reference for a function in a function table of a computer;

copy an original address of the function;

associate the original address to the new reference in the function table;

associate an original reference to a dummy address in the function table; and

interleave non-operating entries into the function table.

15. The apparatus of claim 14 , wherein the interface is further configured to:

receive injected code; and

direct the injected code to the dummy address.

16. The apparatus of claim 15 , wherein the injected code comprises a set of instructions that do not have authorization to be executed on the computer.

17. The apparatus of claim 14 , wherein the interface is further configured to:

randomize entries in the function table for a plurality of functions associated with new references.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2009
From: SEBES, E. JOHN; BHARGAVA, RISHI; NAIK, DILIP
To: SOLIDCORE SYSTEMS, INC.
Reel/Frame 023182/0890 →
MERGER Recorded Sep 1, 2009
From: SOLIDCORE SYSTEMS, INC.
To: MCAFEE, INC.
Reel/Frame 023175/0403 →