×

Generic RootKit detector

  • US 7,647,636 B2
  • Filed: 08/24/2005
  • Issued: 01/12/2010
  • Est. Priority Date: 08/24/2005
  • Status: Active Grant
First Claim
Patent Images

1. In a computer that includes a memory, a single operating system that loads a first version of a library into the memory to provide services to an application program, and a storage device that stores a second version of the library in a protected state, a method of determining whether malware is infecting the first version of the library, the method, which is implemented by the computer, comprising:

  • obtaining properties of the first version of the library that was loaded into memory to provide services to the application program;

    obtaining properties of the second version of the library that is stored in a protected state on the storage device;

    comparing the properties of the first version of the library with the properties of the second version of the library, wherein the properties of the first and the second versions of the library identify particular address locations in memory that are pointed to by the first and the second versions of the library, respectively, wherein comparing the properties of the first version of the library with the properties of the second version of the library includes comparing the value of a call address obtained from a component of the single operating system using data from the first version of a library with a value of the call address calculated from an offset value obtained from the second version of the library;

    determining that the library is infected with malware when the properties of the first and second versions of the library point to different address locations in memory, or determining that the library is not infected with malware when the particular address locations pointed to by the properties of the first and second versions of the library are the same; and

    wherein the library comprises executable code describing a set of routines accessible by an application program interface to be loaded into the memory to provide services to the application program upon an application program interface call;

    wherein the method further includes using a virtual export table to associate routines in the library with call addresses that identify the respective memory locations of the routines and using an integrity modules to calculate a call address of a routine from data in the second version of the library and to store a value of the call address in the virtual export table.

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