Piracy prevention using unique module translation
First Claim
1. A method for providing solidified software in a computing environment, comprising:
- (a) creating a new reference for at least one function in a function table;
(b) copying an address of the at least one function and associating the address with the new reference;
(c) replacing the address associated with an old reference of the at least one function with a dummy address; and
(d) substituting each old reference in normal code with the new reference, wherein injected code is not able to execute in the computing environment.
11 Assignments
0 Petitions
Accused Products
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.
100 Citations
26 Claims
-
1. A method for providing solidified software in a computing environment, comprising:
-
(a) creating a new reference for at least one function in a function table; (b) copying an address of the at least one function and associating the address with the new reference; (c) replacing the address associated with an old reference of the at least one function with a dummy address; and (d) substituting each old reference in normal code with the new reference, wherein injected code is not able to execute in the computing environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for providing solidified software in a computing environment, comprising:
-
(a) creating a new reference for at least one function in a function table, wherein code for the at least one function is at a first storage location; (b) copying the code and placing the code in a second storage location and associating an address of the copied code with the new reference; (c) replacing the code at the first storage location with dummy code; and (d) substituting each reference of the at least one function in normal code with the new reference, wherein injected code is not able to execute in the computing environment. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for providing solidified software in a computing environment, comprising:
-
(a) creating a new reference for at least one function in a function table, wherein code for the at least one function is at a first storage location; (b) copying a first portion of the code for the at least one function and placing the copied code at a second storage location; (c) associating an address of the copied code with the new reference, wherein an end of the copied code references an address of a second portion of the code for the at least one function at the first storage location; (d) replacing the first portion of the code at the first storage location with dummy code; and (e) substituting each reference of the function in normal code with the new reference, wherein injected code is not able to execute in the computing environment. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
Specification