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
OG exemplary drawing
 
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.