×

Dynamic verification of validity of executable code

  • US 7,984,304 B1
  • Filed: 03/02/2004
  • Issued: 07/19/2011
  • Est. Priority Date: 03/02/2004
  • Status: Active Grant
First Claim
Patent Images

1. A method for protecting a computer from unauthorized code, the computer including at least one processor that executes instructions stored in a memory that is organized into separately addressable pages of memory, the method comprising:

  • executing a program, the program having a series of computer-executable instructions executed by the at least one processor, the at least one processor residing in a system hardware platform;

    verifying that the program is valid using a verification engine including verification instructions for execution on the at least one processor residing in the system hardware platform, the program being valid when the program does not include the unauthorized code, wherein the verification engine resides in a system software layer, the system software layer performing hardware-interface and resource-allocating functions;

    ensuring that the program is not executed without also dynamically performing the verifying; and

    continuing execution of the program after dynamically performing the verifying by executing the next instruction as long as the verifying determines that the program is valid and generating a protective response when the verifying does not determine that the program is valid;

    wherein the verifying that the program is valid comprises executing the verification instructions of the verification engine, the verification instructions causing the at least one processor to perform a method comprising;

    identifying the next instruction to be executed in the program;

    for the next instruction to be executed in the program, determining an identifying value for a page of memory that contains the next instruction;

    determining whether the identifying value satisfies a validation condition, wherein the determining as to whether the identifying value satisfies the validation condition comprises comparing the identifying value of the page of memory with a set of reference values; and

    determining that the program is valid only when the validation condition is satisfied.

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