Code obfuscation and controlling a processor by emulation
AssigneeRovi Europe Limited
InventorsAlan Stiemens, Martin Gray, Christopher Sulley
Life of this patent
Estimating the term…
Loading patent…
AssigneeRovi Europe Limited
InventorsAlan Stiemens, Martin Gray, Christopher Sulley
Estimating the term…
An individual security program (28) is randomly chosen by way of a respective key (32) and is then packaged with a games program (20) to provide an executable program file (34) which is applied to a storage media, such as an optical disc (30). Whenever the security program (28) is running, the object code it produces is obfuscated to make it difficult to overcome the protection by identifying and removing the security program. The obfuscated object code is produced by substituting a variable in source code with a function of the variable. When the source code is compiled to produce the object code, the function causes the variable to be presented in the compiled object code as a series of operations.
1-66. (canceled)
A method of producing obfuscated object code, the method comprising:
An executable program in object code, the program having been compiled from source code including variables, wherein a variable in the source code has been compiled to be presented as a series of operations in object code whereby the object code is obfuscated.
A method of producing storage media having a secured executable program thereon, the method comprising the steps of securing an executable program by associating the executable program with a security program which is arranged to control access to the executable program, and applying the secured executable program to a storage media, and the method further comprising obfuscating the object code of the security program, wherein the object code of the security program has been obfuscated by substituting a variable in source code with a selected function of the variable, and compiling the source code to produce object code, the selected function causing the variable to be presented in the compiled object code as a series of operations.
A storage media having a secured executable program thereon, wherein an executable program is secured by having a security program associated therewith, the security program being arranged to control access to the executable program, and wherein the security program is in object code which has been obfuscated, the security program having been compiled from source code including variables, and a variable in the source code of the security program having been compiled to be presented in object code as a series of operations whereby the object code has been obfuscated.
A method of controlling a processor to run a program comprising:
A storage media having a secured executable program thereon, wherein an executable program is secured by having a security program and an emulation program associated therewith, the security program being arranged to control access to the executable program, and the emulation program causing predetermined functions or routines of the executable program to be run on a virtual processor provided by said emulation program, wherein the emulation program is arranged to translate instructions from the executable program into a reduced instruction set format, to cause the translated instructions to be applied to the virtual processor, and to cause the virtual processor to run the instructions applied thereto and to output a series of simple instructions for application to a processor.
Dependencies are inferred from the claim text.