IP Library Granted Patent US 8,863,159
Granted Patent B2
US 8,863,159 · App. 11/484,088 · Granted Oct 14, 2014

System, method and computer program product for inserting an emulation layer in association with a COM server DLL

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,863,159
App. No.
11/484,088
Granted
Oct 14, 2014
Kind
B2
Abstract

A system, method and computer program product are provided. In use, a COM server dynamic link library is identified. Further, an emulation layer is inserted in association with the COM server dynamic link library to emulate interfaces exported by the COM server dynamic link library. As an option, it may be determined whether the COM server DLL is loaded, and the emulation layer may be inserted in response to the determination.

Claims (38)

1. A method, comprising:

identifying a COM server dynamic link library;

inserting an emulation layer in association with the COM server dynamic link library to emulate interfaces exported by the COM server dynamic link library, utilizing a processor, wherein it is ascertained that there is no running application thread with a thread-function residing within the COM server dynamic link library prior to inserting the emulation layer;

identifying, utilizing the emulation layer, at least one infected COM server dynamic link library; and

in response to the identifying the at least one infected COM server dynamic link library:

retrieving an identifier associated with an application thread that loaded, prior to the inserting the emulation layer, the at least one infected COM server dynamic link library; and

freeing, utilizing the emulation layer, the at least one infected COM server dynamic link library from memory based on the identifier.

2. The method of claim 1 , and further comprising hooking predetermined functions.

3. The method of claim 2 , wherein the predetermined functions include at least one of a ntdll!LdrLoadDll function and a ntdll!LdrGetProcedureAddress function.

4. The method of claim 1 , and further comprising determining whether the COM server dynamic link library is loaded.

5. The method of claim 4 , and further comprising intercepting at least one call associated with the COM server dynamic link library.

6. The method of claim 5 , wherein the at least one call includes a DllGetClassObject call.

7. The method of claim 4 , wherein the emulation layer is inserted in response to the determination.

8. The method of claim 1 , wherein the emulation layer is inserted by replacing a first pointer with a proxy pointer pointing to a proxy interface.

9. The method of claim 1 , wherein the responding is carried out to counter terrorism.

10. A computer program product embodied on a tangible non-transitory computer readable medium, comprising:

computer code for identifying a COM server dynamic link library;

computer code for inserting an emulation layer in association with the COM server dynamic link library to emulate interfaces exported by the COM server dynamic link library, wherein it is ascertained that there is no running application thread with a thread-function residing within the COM server dynamic link library prior to inserting the emulation layer;

computer code for identifying, utilizing the emulation layer, at least one infected COM server dynamic link library; and

computer code for, in response to the identifying the at least one infected COM server dynamic link library: and

retrieving an identifier associated with an application thread that loaded, prior to the inserting the emulation layer, the at least one infected COM server dynamic link library; and

freeing, utilizing the emulation layer, the at least one infected COM server dynamic link library from memory based on the identifier.

11. The computer program product of claim 10 , and further comprising computer code for hooking predetermined functions.

12. The computer program product of claim 11 , wherein the predetermined functions include at least one of a ntdll!LdrLoadDll function and a ntdll!LdrGetProcedureAddress function.

13. The computer program product of claim 10 , and further comprising computer code for determining whether the COM server dynamic link library is loaded.

14. The computer program product of claim 13 , and further comprising computer code for intercepting at least one call associated with the COM server dynamic link library.

15. The computer program product of claim 14 , wherein the at least one call includes a DllGetClassObject call.

16. The computer program product of claim 13 , wherein the emulation layer is inserted in response to the determination.

17. The computer program product of claim 10 , wherein the emulation layer is inserted by replacing a first pointer with a proxy pointer pointing to a proxy interface.

18. A system, comprising:

a processor for identifying a COM server dynamic link library,

inserting an emulation layer in association with the COM server dynamic link library to emulate interfaces exported by the COM server dynamic link library, wherein it is ascertained that there is no running application thread with a thread-function residing within the COM server dynamic link library prior to inserting the emulation layer;

identifying, utilizing the emulation layer, at least one infected COM server dynamic link library; and

in response to the identifying the at least one infected COM server dynamic link library:

retrieving an identifier associated with an application thread that loaded, prior to the inserting the emulation layer, the at least one infected COM server dynamic link library; and

freeing, utilizing the emulation layer, the at least one infected COM server dynamic link library from memory based on the identifier.

19. The method of claim 1 , wherein inserting the emulation layer allows the COM server dynamic link library to be at least one of restricted and repaired without affecting an operation of COM client applications using the COM server.

20. The system of claim 18 , wherein inserting the emulation layer allows the COM server dynamic link library to be at least one of restricted and repaired without affecting an operation of COM client applications using the COM server.

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: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
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 Jul 11, 2006
From: SALLAM, AHMED SAID
To: MCAFEE, INC.
Reel/Frame 018055/0319 →