Patent ID: 8615735

Claim:
A method of obfuscating a computer program, the method comprising: identifying a set of executable instructions at a first location in an instruction section of the computer program; identifying data at a second location in a data section of the computer program; and swapping the set of executable instructions at the first location with data stored at the second location, wherein at least one of the set of executable instructions at the first location and the data stored at the second location are padded to achieve a same size, and wherein the swapping comprises: removing the set of executable instructions from the instruction section by moving the set of executable instructions to the second location in the data section, identifying at least one instruction reference to an instruction in the set of executable instructions at the first location and updating the at least one instruction reference to point to the instruction in the set of executable instructions at the second location, removing the data from the data section by moving the data to the first location in the instruction section, and identifying at least one data reference to the data stored at the second location and updating the at least one data reference to point to the data stored at the first location.