Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of obfuscating computer code, the method comprising: receiving a file of compiled computer code; identifying a plurality of different obfuscation functions for a particular portion of the compiled code; generating a plurality of different instances of obfuscated compiled code using the plurality of different obfuscation functions on the particular portion of the compiled code, wherein a first instance of obfuscated code is obfuscated with a first obfuscation function and is for installation on a first device and a second instance of obfuscated code is obfuscated with a second obfuscation function and is for installation on a second device; and storing the obfuscated code instances with a boot installer that is adapted to execute the obfuscated code instances on recipient devices.
2. The method of claim 1 , further comprising the masking the obfuscated code instances.
3. The method of claim 1 , wherein the obfuscated code when executed is equivalent but not identical to the compiled code.
4. The method of claim 1 , wherein generating the plurality of different instances of obfuscated code using the different obfuscation functions further comprises: generating a random number for each different instance of obfuscated code to be generated, wherein the random numbers are each associated with a different recipient device; and selecting different obfuscation functions for the different instances based on the generated random numbers such that each recipient device will receive a unique instance of the obfuscated code.
5. The method of claim 4 , wherein the different obfuscation functions are each a different order for performing a plurality of functions in the compiled code, and wherein the random number determines the particular order.
6. The method of claim 1 further comprising selecting the different obfuscation functions based on characteristics of the recipient devices.
7. The method of claim 1 , wherein the obfuscation functions include a plurality of Montgomery multiplication functions, at least one using coarsely integrated operand scanning and at least one using finely integrated operand scanning.
8. The method of claim 7 , wherein each of the coarsely integrated operand scanning functions have a base value of a different length.
9. A non-transitory machine readable medium storing a program which when executed by at least one processing unit obfuscates computer code, the program comprising sets of instructions for: receiving a file of compiled computer code; identifying a plurality of different obfuscation functions for a particular portion of the compiled code; generating a plurality of different instances of obfuscated code using the plurality of different obfuscation functions on the particular portion of the compiled code, wherein a first instance of obfuscated code is obfuscated with a first obfuscation function and is for installation on a first device, and wherein a second instance of obfuscated code is obfuscated with a second obfuscation function and is for installation on a second device; and storing the obfuscated code instances with a boot installer program that is adapted to execute the obfuscated code instances on recipient devices.
10. The non-transitory machine readable medium of claim 9 , wherein the program further comprises a set of instructions for masking the obfuscated code instances.
11. The non-transitory machine readable medium of claim 9 , wherein the obfuscated code is equivalent but not identical to the compiled code before it was obfuscated.
12. The non-transitory machine readable medium of claim 9 , wherein the prom further comprises sets of instructions for: generating a random number for each different instance of obfuscated code to be generated, wherein the random numbers are each associated with a different recipient device; and selecting different obfuscation functions for the different instances based on the generated random numbers such that each recipient device will receive a unique instance of the obfuscated code.
13. The non-transitory machine readable medium of claim 12 , wherein the different obfuscation functions are each a different order for performing a plurality of functions in the compiled code, and wherein the random number determines the particular order.
14. The non-transitory machine readable medium of claim 9 , wherein the prom further comprises a set of instructions for selecting the different obfuscation functions for the different instances based on characteristics of the recipient devices.
15. The non-transitory machine readable medium of claim 9 , wherein the obfuscation functions include a plurality of Montgomery multiplication functions, at least one using coarsely integrated operand scanning, and at least one using finely integrated operand scanning.
16. The non-transitory machine readable medium of claim 15 , wherein each of the coarsely integrated operand scanning functions have a base value of a different length.
17. An electronic device comprising: a set of processing units for executing sets of instructions; a non-transitory machine readable medium storing a program which when executed by at least one of the processing units obfuscates computer code, the program comprising sets of instructions for: receiving a file of compiled computer code; identifying a plurality of different obfuscation functions for a particular portion of the compiled code; generating a plurality of different instances of obfuscated code using the plurality of different obfuscation functions on the particular portion of the compiled code, wherein a first instance of obfuscated code is obfuscated with a first obfuscation function and is for installation on a first device, and wherein a second instance of obfuscated code is obfuscated with a second obfuscation function and is for installation on a second device; and storing the obfuscated code instances with a boot installer that is adapted to execute the obfuscated code instances on recipient devices.
18. The electronic device of claim 17 , wherein the program further comprises sets of instructions for: generating a random number for each different instance of obfuscated code to be generated, wherein the random numbers are each associated with a different recipient device; and selecting different obfuscation functions for the different instances based on the generated random numbers such that each recipient device will receive a unique instance of the obfuscated code.
19. The electronic device of claim 18 , wherein the different obfuscation functions are each a different order for performing a plurality of functions in the compiled code, and wherein the random number determines the particular order.
20. The electronic device of claim 17 , wherein the program further comprises a set of instructions for selecting the different obfuscation functions based on characteristics of the recipient devices.
Unknown
November 4, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.