US 7,322,045 B2
Method of obfuscating computer instruction streams
Raymond R. Kiddy, Sunnyvale, Calif. (US)
Assigned to Apple Inc., Cupertino, Calif. (US)
Filed on Jan. 23, 2004, as Appl. No. 10/763,881.
Application 10/763881 is a continuation of application No. 09/915827, filed on Jul. 25, 2001, granted, now 6,694,435.
Prior Publication US 2004/0151306 A1, Aug. 05, 2004
Int. Cl. G06F 7/04 (2006.01); G06F 17/30 (2006.01)
U.S. Cl. 726—26  [726/27; 726/30; 713/162; 713/165; 713/167; 713/189; 717/136; 717/140; 717/148; 717/162] 49 Claims
OG exemplary drawing
 
1. A data processing system, comprising:
memory means for storing an obfuscated stream, the obfuscated stream comprising parts which are interleaved, the parts having been taken from at least two operative instruction streams including a first operative instruction stream and a second operative instruction stream, the first operative instruction streams being compiled from a first source code, the second operative instruction streams being compiled from a second source code separate from the first source code; and
processor means for executing the obfuscated stream;
wherein the parts include a second part interleaved between a first part and a third part, the second part being of the second operative instruction stream, the first part and the third part being of the first operative instruction stream;
wherein the second part is reachable from the first part during the execution; and
wherein when the first part and the third part are executed, the second part is also executed.