| US 7,613,907 B2 | ||
| Embedded software camouflage against code reverse engineering | ||
| Majid Kaabouch, Rousset (France); and Eric Le Cocquen, Saint Maximin la Sainte Beaume (France) | ||
| Assigned to ATMEL Corporation, San Jose, Calif. (US) | ||
| Filed on Nov. 09, 2006, as Appl. No. 11/558,357. | ||
| Claims priority of provisional application 60/822220, filed on Aug. 11, 2006. | ||
| Prior Publication US 2008/0040593 A1, Feb. 14, 2008 | ||
| Int. Cl. G06F 7/38 (2006.01); G06F 9/00 (2006.01); G06F 9/44 (2006.01) | ||
| U.S. Cl. 712—220 [712/233; 712/236; 712/243; 712/245; 711/203] | 19 Claims |

| 1. A method comprising:
receiving a program stored in on-chip memory of a system, the program including a flow control instruction, the flow control
instruction referencing a program address operand, the system including a first program address register and a corresponding
second program address register, the first program register being pre-loaded with a camouflage program address prior to program
execution, the second program register being pre-loaded with an alternate program address prior to program execution, and
the camouflage program address matching the program address operand referenced by the flow control instruction;
during execution of the program, identifying the flow control instruction in the program and the referenced program address
operand;
determining if the referenced program address operand is protected; and
if the referenced program address operand is protected, substituting the alternate program address for the referenced program
address operand such that program execution continues at the alternate program address after execution of the flow control
instruction.
|