Multiple instruction dispatch tables for application program obfuscation
First Claim
1. A method for executing an obfuscated application program, the method comprising:
- receiving an obfuscated application program, said obfuscated application program comprising at least one instruction opcode value encoded using one of a plurality of instruction set opcode value encoding schemes;
receiving an application program instruction corresponding to a current instruction counter value;
selecting an instruction dispatch table based at least in part on said current instruction counter value; and
executing said application program instruction using said selected instruction dispatch table.
2 Assignments
0 Petitions
Accused Products
Abstract
Obfuscating an application program comprises reading an application program comprising code, determining multiple dispatch tables associated with the application program, transforming the application program into application program code configured to utilize the dispatch tables during application program execution to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value, and sending the application program code. Executing an obfuscated application program comprises receiving an obfuscated application program comprising at least one instruction opcode value encoded using one of multiple instruction set opcode value encoding schemes, receiving an application program instruction corresponding to a current instruction counter value, selecting an instruction dispatch table based at least in part on the current instruction counter value, and executing the application program instruction using the selected instruction dispatch table.
119 Citations
48 Claims
-
1. A method for executing an obfuscated application program, the method comprising:
-
receiving an obfuscated application program, said obfuscated application program comprising at least one instruction opcode value encoded using one of a plurality of instruction set opcode value encoding schemes;
receiving an application program instruction corresponding to a current instruction counter value;
selecting an instruction dispatch table based at least in part on said current instruction counter value; and
executing said application program instruction using said selected instruction dispatch table. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for application program obfuscation, the method comprising:
-
reading an application program comprising code;
determining a plurality of dispatch tables associated with said application program;
transforming said application program into application program code configured to utilize said plurality of dispatch tables during application program execution to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value; and
sending said application program code. - View Dependent Claims (9, 10, 11)
-
-
12. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method for executing an obfuscated application program, the method comprising:
-
receiving an obfuscated application program, said obfuscated application program comprising at least one instruction opcode value encoded using one of a plurality of instruction set opcode value encoding schemes;
receiving an application program instruction corresponding to a current instruction counter value;
selecting an instruction dispatch table based at least in part on said current instruction counter value; and
executing said application program instruction using said selected instruction dispatch table. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method for application program obfuscation, the method comprising:
-
reading an application program comprising code;
determining a plurality of dispatch tables associated with said application program;
transforming said application program into application program code configured to utilize said plurality of dispatch tables during application program execution to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value; and
sending said application program code. - View Dependent Claims (20, 21, 22)
-
-
23. An apparatus for executing an obfuscated application program, the apparatus comprising:
-
means for receiving an obfuscated application program, said obfuscated application program comprising at least one instruction opcode value encoded using one of a plurality of instruction set opcode value encoding schemes;
means for receiving an application program instruction corresponding to a current instruction counter value;
means for selecting an instruction dispatch table based at least in part on said current instruction counter value; and
means for executing said application program instruction using said selected instruction dispatch table. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
-
30. An apparatus for application program obfuscation, the apparatus comprising:
-
means for reading an application program comprising code;
means for determining a plurality of dispatch tables associated with said application program;
means for transforming said application program into application program code configured to utilize said plurality of dispatch tables during application program execution to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value; and
means for sending said application program code. - View Dependent Claims (31, 32, 33)
-
-
34. An apparatus for executing an obfuscated application program, the apparatus comprising a user device configured to:
-
receive an obfuscated application program, said obfuscated application program comprising at least one instruction opcode value encoded using one of a plurality of instruction set opcode value encoding schemes;
receive an application program instruction corresponding to a current instruction counter value;
select an instruction dispatch table based at least in part on said current instruction counter value; and
execute said application program instruction using said selected instruction dispatch table. - View Dependent Claims (35, 36, 37, 38, 39, 40)
-
-
41. An apparatus for application program obfuscation, the apparatus comprising an application program provider configured to:
-
read an application program comprising code;
determine a plurality of dispatch tables associated with said application program;
transform said application program into application program code configured to utilize said plurality of dispatch tables during application program execution to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value; and
send said application program code. - View Dependent Claims (42, 43, 44)
-
-
45. A memory for storing data for access by an application program being executed on a data processing system, comprising:
a data structure stored in said memory, said data structure including information used by said application program execute an obfuscated application program, said data structure comprising application program code configured to utilize a plurality of dispatch tables during execution of said obfuscated application program to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value. - View Dependent Claims (46, 47)
-
48. A memory for storing data for access by an application program being executed on a data processing system, comprising:
a data structure stored in said memory, said data structure including information used by said application program execute an obfuscated application program, said data structure comprising a plurality of dispatch tables used during execution of said obfuscated application program to determine the location of instruction implementation methods to be executed based at least in part on a current instruction counter value.
Specification