Patent ID: 7415618

Claim:
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, wherein each of said instruction set opcode value encoding schemes includes an entry corresponding to said at least one instruction opcode value, each of said instruction opcode value encoding schemes is represented in a different dispatch table in a plurality of dispatch tables; each dispatch table in said plurality of dispatch tables permutes instruction implementation methods in a same instruction set; and each of said instruction opcode value encoding schemes creates a different one-to-one mapping between a set of numbers and said instruction implementation methods in said same instruction set so that each of said instruction set opcode value encoding schemes uses a different opcode value encoding for said entry; determining a dispatch table associated with said application program, said dispatch table corresponding to said one of a plurality of instruction set opcode value encoding schemes; and executing said application program using said associated dispatch table.