×

Proactive computer malware protection through dynamic translation

  • US 7,636,856 B2
  • Filed: 12/06/2004
  • Issued: 12/22/2009
  • Est. Priority Date: 12/06/2004
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method for generating safe program code in response to receiving a request to execute potential malware, the method comprising:

  • loading an executable into memory to be executed by a hardware processor of a computer system;

    dividing the executable into blocks of instructions, wherein a block of instructions has a single entry point and a single exit point, the blocks of instructions including a first block and a second block, wherein the instructions of the first and second block each perform a functionality, wherein properties of the blocks are maintained in a data structure, the properties include an indication whether the instructions of a particular block have been translated into safe instructions;

    prior to executing the first block, translating the instructions of the first block into safe instructions that perform the same functionality as the instructions of the first block, and updating the properties of the first block in the data structure to indicate that the instructions of the first block have been translated to safe instructions;

    executing the safe instructions of the first block on the hardware processor;

    prior to executing the second block, translating the instructions of the second block into safe instructions that perform the same functionality as the instructions of the second block, and updating the properties of the second block in the data structure to indicate that the instructions of the second block have been translated to safe instructions;

    commencing to execute the safe instructions of the second block on the hardware processor;

    during the execution of the safe instructions of the second block, detecting that the safe instructions of the second block modify the instructions of the first block; and

    updating the properties of the first block to indicate that the instructions of the first block have not be translated such that upon attempting to execute the safe instructions of the first block, the modified instructions of the first block will be translated into new safe instructions prior to executing the first block.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×