IP Library Granted Patent US 8,978,053
Granted Patent B2
US 8,978,053 · App. 14/088,359 · Granted Mar 10, 2015

Enhanced hook function for use with different versions of a dynamically loaded library

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,978,053
App. No.
14/088,359
Granted
Mar 10, 2015
Kind
B2
Abstract

A hooking system for hooking predetermined references to predetermined dynamically loaded library (DLL) functions includes a DLL version identifier provided by a hook entry code to an enhanced hook. The hook entry code is dynamically generated during runtime of an affected software application. The version identifier enables unambiguous communication of a single enhanced hook with functions of multiple versions of identically named DLLs loaded into the same isolated process memory area.

Claims (38)

1. A method, comprising operations of:

identifying, during execution of a software application, a first reference to a function in the software application, wherein the first reference corresponds to a first version of a dynamically loaded library (DLL) with a first version of the function;

dynamically generating a first hook-entry code configured to uniquely identify the first version of the function, wherein a first return address corresponding to the first version of the function is used to generate the first hook-entry code; and

replacing the first reference with the first hook-entry code.

2. The method of claim 1 , wherein an enhanced hook calls the first version of the function upon receiving the first hook-entry code.

3. The method of claim 1 , further comprising:

identifying, during execution of the software application, a second reference to the function in the software application, wherein the second reference corresponds to a second version of the DLL with a second version of the function; and

dynamically generating a second hook-entry code configured to uniquely identify the second version of the function, wherein a second return address corresponding to the second version of the function is used to generate the second hook-entry code.

4. The method of claim 3 , further comprising:

replacing the second reference with the second hook-entry code.

5. The method of claim 4 , wherein the enhanced hook calls the first version of the function, upon receiving the first hook-entry code.

6. The method of claim 1 , wherein the software application is compressed together with a virtual operating system in an executable file.

7. The method of claim 6 , wherein code for generating the first hook-entry code is part of the virtual operating system.

8. One or more non-transitory computer-readable media persistently storing a program, wherein the program, when executed, instructs a processor to perform the following operations:

identify, during execution of a software application, a first reference to a function in the software application, wherein the first reference corresponds to a first version of a dynamically loaded library (DLL) with a first version of the function;

dynamically generate a first hook-entry code configured to uniquely identify the first version of the function, wherein a first return address corresponding to the first version of the function is used to generate the first hook-entry code; and

replace the first reference with the first hook-entry code.

9. The non-transitory computer-readable media of claim 8 , wherein an enhanced hook calls the first version of the function, upon receiving the first hook-entry code.

10. The non-transitory computer-readable media of claim 8 , further comprising:

identify, during execution of the software application, a second reference to the function in the software application, wherein the second reference corresponds to a second version of the DLL with a second version of the function; and

dynamically generate a second hook-entry code configured to uniquely identify the second version of the function, wherein a second return address corresponding to the second version of the function is used to generate the second hook-entry code.

11. The non-transitory computer-readable media of claim 10 , further comprising:

replacing the second reference with the second hook-entry code.

12. The non-transitory computer-readable media of claim 11 , wherein the enhanced hook calls the first version of the function, upon receiving the first hook-entry code.

13. The non-transitory computer-readable media of claim 8 , wherein the software application is compressed together with a virtual operating system in an executable file.

14. The non-transitory computer-readable media of claim 13 , wherein code for generating the first hook-entry code is part of the virtual operating system.

15. A method, comprising:

beginning execution of a software application, wherein the software application is compressed together with a virtual operating system in an executable file;

identifying, during execution of the software application, a first reference to a function in the software application, wherein the first reference corresponds to a first version of a dynamically loaded library (DLL) with a first version of the function;

dynamically generating a first hook-entry code configured to uniquely identify the first version of the function, wherein a first return address corresponding to the first version of the function is used to generate the first hook-entry code; and

replacing the first reference with the first hook-entry code.

16. The method of claim 15 , wherein the software application includes an enhanced hook configured to call the first version of the function upon receiving the first hook-entry code.

17. The method of claim 15 , wherein code for generating the first hook-entry code is part of the virtual operating system.

18. The method of claim 15 , further comprising:

identifying, during execution of the software application, a second reference to the function in the software application, wherein the second reference corresponds to a second version of the DLL with a second version of the function; and

dynamically generating a second hook-entry code configured to uniquely identify the second version of the function, wherein a second return address corresponding to the second version of the function is used to generate the second hook-entry code.

19. The method of claim 18 , further comprising replacing the second reference with the second hook-entry code.

20. The method of claim 19 , wherein the enhanced hook calls the first version of the function, upon receiving the first hook-entry code.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →