Patent ID: 9069938
Filing Date: 2015-06-30
Classification: G06F

Abstract:
1. A method comprising: generating, based on a computer program, instructions that are part of code that is executable on a microprocessor; encoding blocks of the instructions by applying different types of mutations to different blocks of the instructions to produce coded blocks; in at least some of the coded blocks, replacing branch instructions with control information that predicts outcomes of the branch instructions; associating control instructions with the coded blocks, the control instructions being usable to enable decoding the coded blocks; and executing the code on the microprocessor to perform a function associated with the computer program, wherein executing the code comprises using the control instructions to decode corresponding coded blocks and using the control information to determine how a first coded block encoded using a first type of mutation relates to a second coded block encoded using a second type of mutation that is different from the first type of mutation.