Patent ID: 9053300
Filing Date: 2015-06-09
Classification: G06F,H04L

Abstract:
1. A method to generate final software code from an initial software code, said initial software code executing a function formed by a plurality of blocks of instructions and transforming an input data to an output data, said final software code being directly executable by a target processor to provide said function, the target processor having an instructions set, the final software code having a size which is larger than a size of the initial software codes, said method comprising the steps of: building a conversion table to map at least one instruction from the instruction set to a plurality of functionally equivalent instructions or sets of instructions; for a plurality of instructions from the plurality of blocks of instructions, selecting pseudo-randomly an equivalent instruction or set of instructions from the conversion table so as to obtain an equivalent block of instructions; from the plurality of blocks of instructions, for each instruction whose execution would involve a non-sequential change of stack pointer, reproducing the instructions at a position indicated by such a change in stack pointer and pseudo-randomly selecting an equivalent instruction or set of instructions from the conversion table so as to obtain a further equivalent block of instructions; and appending a plurality of said equivalent blocks of instructions and further equivalent blocks of instructions to obtain the final software code.