Invention Grant
US08856500B2 Obfuscating program by scattering sequential instructions into memory regions such that jumps occur with steps of both signs in equal frequency
有权
通过将顺序指令散布到存储器区域中使得混合程序发生错误,从而以相同频率的两个符号的步骤发生跳转
- Patent Title: Obfuscating program by scattering sequential instructions into memory regions such that jumps occur with steps of both signs in equal frequency
- Patent Title (中): 通过将顺序指令散布到存储器区域中使得混合程序发生错误,从而以相同频率的两个符号的步骤发生跳转
-
Application No.: US12866394Application Date: 2009-02-02
-
Publication No.: US08856500B2Publication Date: 2014-10-07
- Inventor: Marc Vauclair , Pieter J. Janssens
- Applicant: Marc Vauclair , Pieter J. Janssens
- Applicant Address: NL Eindhoven
- Assignee: NXP B.V.
- Current Assignee: NXP B.V.
- Current Assignee Address: NL Eindhoven
- Priority: EP08101324 20080206
- International Application: PCT/IB2009/050408 WO 20090202
- International Announcement: WO2009/098630 WO 20090813
- Main IPC: G06F9/32
- IPC: G06F9/32 ; G06F21/22 ; G06F21/14

Abstract:
A program is obfuscated by reordering its instructions. Original instruction addresses are mapped to target addresses in an irregular way, with position dependent address steps between the addresses of logically successive instructions. Preferably pseudo-random address steps are used, for example with address steps that have mutually opposite sign with equal frequency. The data processing device has an instruction flow control unit that updates instruction addresses according the position dependent address steps. The instruction flow control unit may comprise a circuit that contains secret information, which is not normally accessible from the outside, to control the updates. A lookup table may be used for example, with address steps, successor addresses or mapped address values. In an embodiment the mapping of original instruction addresses to target addresses may be visualized by means of a path (36) along points in an n-dimensional array, where n is greater than one. Successive original instruction addresses are mapped to successive locations in the path, and locations along respective rows of the array are mapped to respective mutually disjoint ranges (33a-d). Because an n-dimensional path is used a form of locality is preserved that provides for cache efficiency, whereas the multi-dimensional nature of the path makes it possible to combine this locality with pseudo-random steps.
Public/Granted literature
- US20100325402A1 DATA PROCESSING DEVICE AND METHOD FOR EXECUTING OBFUSCATED PROGRAMS Public/Granted day:2010-12-23
Information query