Obfuscating program by scattering sequential instructions into memory regions such that jumps occur with steps of both signs in equal frequency
US8856500B2 · kind B2 · utility
Assignee
Inventors
Key dates
| Filing date | Feb 2, 2009 |
| Grant date | Oct 7, 2014 |
| Priority date | — |
| Expiry date | Nov 29, 2030 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F21/14
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
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-dime…
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.