IP Library Granted Patent US 7,784,034
Granted Patent B1
US 7,784,034 · App. 11/314,398 · Granted Aug 24, 2010

System, method and computer program product for hooking a COM interface

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 7,784,034
App. No.
11/314,398
Granted
Aug 24, 2010
Kind
B1
Abstract

A hooking system, method and computer program product are provided. In use, a component object model (COM) interface is hooked. To this end, a function may be performed based on the hooking.

Claims (52)

1. A method for hooking a component object model (COM) interface comprising:

receiving an identifier for a COM interface to be hooked;

creating and executing a worker thread;

wherein executing said worker thread comprises:

generating a COM apartment model comprising:

invoking a CoInitialize function to initialize a COM library and identify a concurrency model as a single-thread apartment; and

invoking a CoCreateInstance to identify matching values for each COM interface of a plurality of COM interfaces;

wherein said matching values include both a matching class identifier (CLSID) and an interface identifier (IID);

determining one of said plurality of COM interfaces that matches the CLSID and IID of said COM interface to be hooked;

wherein further comprising in response to said determining:

identifying a virtual table (vtable) for said one of said plurality of COM interfaces;

identifying an entry associated with an interface function from said vtable; and

identifying an address of the interface function to which said entry points;

hooking said one of said plurality of COM interfaces by hooking said interface function at said identified address; and

performing a function based on said hooking of said interface function.

2. The method of claim 1 , wherein subsequent invocations of the interface function are hooked.

3. The method of claim 1 , wherein the hooked interface function invocations are routed to a callback function of a intrusion detection system (IDS).

4. The method of claim 3 , wherein an entry of the interface function is hooked.

5. The method of claim 3 , wherein an exit of the interface function is hooked.

6. The method of claim 1 , wherein the interface is hooked utilizing a security application.

7. The method of claim 6 , wherein the security application includes an intrusion detection system (IDS).

8. The method of claim 1 , wherein the function includes a security function.

9. A computer program product embodied on a non-transitory computer readable medium comprising instruction that when executed by a processor performs the steps of:

receiving an identifier for a COM interface to be hooked;

creating and executing a worker thread;

wherein executing said worker thread comprises:

generating a COM apartment model comprising:

invoking a CoInitialize function to initialize a COM library and identify a concurrency model as a single-thread apartment; and

invoking a CoCreateInstance to identify matching values for each COM interface of a plurality of COM interfaces;

wherein said matching values include both a matching class identifier (CLSID) and an interface identifier (IID);

determining one of said plurality of COM interfaces that matches the CLSID and IID of said COM interface to be hooked;

wherein further comprising in response to said determining:

identifying a virtual table (vtable) for said one of said plurality of COM interfaces;

identifying an entry associated with an interface function from said vtable; and

identifying an address of the interface function to which said entry points;

hooking said one of said plurality of COM interfaces by hooking said interface function at said identified address; and

performing a function based on said hooking of said interface function.

10. A system comprising a processor that performs the steps of:

receiving an identifier for a COM interface to be hooked;

creating and executing a worker thread;

wherein executing said worker thread comprises:

generating a COM apartment model comprising:

invoking a CoInitialize function to initialize a COM library and identify a concurrency model as a single-thread apartment; and

invoking a CoCreateInstance to identify matching values for each COM interface of a plurality of COM interfaces;

wherein said matching values include both a matching class identifier (CLSID) and an interface identifier (IID);

determining one of said plurality of COM interfaces that matches the CLSID and IID of said COM interface to be hooked;

wherein further comprising in response to said determining:

identifying a virtual table (vtable) for said one of said plurality of COM interfaces;

identifying an entry associated with an interface function from said vtable; and

identifying an address of the interface function to which said entry points;

hooking said one of said plurality of COM interfaces by hooking said interface function at said identified address; and

performing a function based on said hooking of said interface function on said processor.

Assignments (8)
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 Dec 21, 2005
From: DALCHER, GREGORY WILLIAM; HOROVITZ, ODED
To: MCAFEE, INC.
Reel/Frame 017367/0782 →