IP Library Granted Patent US 8,458,794
Granted Patent B1
US 8,458,794 · App. 11/851,308 · Granted Jun 4, 2013

System, method, and computer program product for determining whether a hook is associated with potentially unwanted activity

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,458,794
App. No.
11/851,308
Granted
Jun 4, 2013
Kind
B1
Abstract

A system, method, and computer program product are provided for determining whether a hook is associated with potentially unwanted activity. In use, a hook is identified in a data section or a code section. Additionally, a first enumeration of objects associated with the data section or the code section is performed, and a second enumeration of objects associated with the data section or the code section is performed. Further, results of the first enumeration and results of the second enumeration are compared for determining whether the hook is associated with potentially unwanted activity.

Claims (34)

1. A method, comprising:

identifying a hook in a data section or a code section of a computer, wherein identifying the hook further comprises comparing at least one of the data section to a previous version of the data section, and the code section to a previous version of the code section, and wherein when the hook is in the data section the previous version of the data section is identified by parsing sections in a binary file, and when the hook is in the code section the previous version of the code section is identified in a stored file image of the code section;

performing a first enumeration associated with the data section or the code section to identify an object associated the hook;

overwriting the object associated with the hook with an original version of the object from a clean source to produce a restored object;

performing a second enumeration of the restored object within the data section or the code section;

determining whether the hook is associated with a rootkit by comparing first resulting objects from the first enumeration to second resulting objects from the second enumeration and determining whether the hook functions to hide any of the first resulting objects or the second resulting objects based upon the comparison; and

reporting the hook as a rootkit if it is determined that the hook functions to hide any of the first resulting objects or the second resulting objects.

2. The method of claim 1 , wherein the hook includes a memory hook.

3. The method of claim 1 , wherein the hook is in the data section, and includes a modification to a function pointer in the data section.

4. The method of claim 1 , wherein the hook is in the code section, and includes a modification to a function in the code section.

5. The method of claim 1 , wherein the hook is in the data section, and the data section is included in application memory.

6. The method of claim 1 , wherein the hook is in the code section, and the code section is included in a kernel of an operating system.

7. The method of claim 1 , wherein the hook is identified by scanning at least one of the data section and the code section.

8. The method of claim 1 , wherein the hook is in the data section, and the previous version of the data section is identified by locating known function pointers located outside of a main module.

9. The method of claim 1 , wherein the first enumeration is affected by the hook.

10. The method of claim 1 , wherein the first enumeration is performed with the hook in the data section or the code section.

11. The method of claim 1 , wherein the second enumeration is performed with the hook removed from the data section or the code section.

12. The method of claim 1 , wherein the rootkit is identified if results of the first enumeration do not match results of the second enumeration.

13. The method of claim 1 , further comprising automatically repairing the data section or the code section.

14. A computer program product embodied on a non-transitory computer readable medium for performing operations, comprising:

identifying a hook in a data section or a code section of a computer, wherein identifying the hook further comprises comparing at least one of the data section to a previous version of the data section, and the code section to a previous version of the code section, and wherein when the hook is in the data section the previous version of the data section is identified by parsing sections in a binary file, and when the hook is in the code section the previous version of the code section is identified in a stored file image of the code section;

performing a first enumeration associated with the data section or the code section to identify an object associated the hook;

overwriting the object associated with the hook with an original version of the object from a clean source to produce a restored object;

performing a second enumeration of the restored object within the data section or the code section;

determining whether the hook is associated with a rootkit by comparing first resulting objects from the first enumeration to second resulting objects from the second enumeration and determining whether the hook functions to hide any of the first resulting objects or the second resulting objects based upon the comparison; and

reporting the hook as a rootkit if it is determined that the hook functions to hide any of the first resulting objects or the second resulting objects.

15. A system, comprising: a processor, the system being configured for:

identifying a hook in a data section or a code section of a computer, wherein identifying the hook further comprises comparing at least one of the data section to a previous version of the data section, and the code section to a previous version of the code section, and wherein when the hook is in the data section the previous version of the data section is identified by parsing sections in a binary file, and when the hook is in the code section the previous version of the code section is identified in a stored file image of the code section;

performing a first enumeration associated with the data section or the code section to identify an object associated the hook;

overwriting the object associated with the hook with an original version of the object from a clean source to produce a restored object;

performing a second enumeration of the restored object within the data section or the code section;

determining whether the hook is associated with a rootkit by comparing first resulting objects from the first enumeration to second resulting objects from the second enumeration and determining whether the hook functions to hide any of the first resulting objects or the second resulting objects based upon the comparison; and

reporting the hook as a rootkit if it is determined that the hook functions to hide any of the first resulting objects or the second resulting objects.

16. The system of claim 15 , wherein the processor is coupled to memory via a bus.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2007
From: SALLAM, AHMED SAID
To: MCAFEE, INC.
Reel/Frame 019806/0196 →