IP Library Granted Patent US 9,311,126
Granted Patent B2
US 9,311,126 · App. 13/192,412 · Granted Apr 12, 2016

System and method for virtual partition monitoring

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 9,311,126
App. No.
13/192,412
Granted
Apr 12, 2016
Kind
B2
Abstract

A method is provided in one example embodiment that includes rebasing a module in a virtual partition to load at a fixed address and storing a hash of a page of memory associated with the fixed address. An external handler may receive a notification associated with an event affecting the page. An internal agent within the virtual partition can execute a task and return results based on the task to the external handler, and a policy action may be taken based on the results returned by the internal agent. In some embodiments, a code portion and a data portion of the page can be identified and only a hash of the code portion is stored.

Claims (66)

1. A method, comprising:

identifying a module to be loaded;

determining a fixed address in the virtual partition wherein a previous instance of the module was loaded at the fixed address;

rebasing the module in a virtual partition to load at the fixed address, including:

determining file information for the module;

removing relocation data from the module; and

modifying a header in the module to specify the fixed address;

storing a hash of a page of memory associated with the fixed address after modifying the header;

receiving in an external handler a notification associated with an event affecting the page;

instructing an internal agent within the virtual partition to execute a task and return results based on the task to the external handler; and

taking a policy action based on the results returned by the internal agent using the hash based at least upon the fixed address.

2. The method of claim 1 , wherein the external handler operates in a second virtual partition.

3. The method of claim 1 , wherein the external handler operates in a virtualization host.

4. The method of claim 1 , wherein:

the external handler operates in a first virtualization guest in a virtualized platform; and

the virtual partition is a second virtualization guest in the virtualized platform.

5. The method of claim 1 , wherein the event notification is received from a hypervisor extension in a virtualized platform.

6. The method of claim 1 , wherein rebasing the module comprises patching a loader in an operating system to load the module at the fixed address.

7. The method of claim 1 , wherein the task comprises identifying the module based on a virtual address associated with the page.

8. The method of claim 1 , wherein the task comprises identifying the page as a mixed use page.

9. The method of claim 1 , wherein storing a hash comprises identifying a code portion and a data portion of the page and storing only a hash of the code portion.

10. The method of claim 1 , further comprising:

parking a thread associated with the module that caused the event; and

resuming other threads in the virtual partition after parking the thread that caused the event.

11. Logic encoded in one or more non-transitory media that includes code for execution and when executed by one or more processors is operable to perform operations comprising:

identifying a module to be loaded;

determining a fixed address in the virtual partition wherein a previous instance of the module was loaded at the fixed address;

rebasing the module in a virtual partition to load at the fixed address, including:

determining file information for the module;

removing relocation data from the module; and

modifying a header in the module to specify the fixed address;

storing a hash of a page of memory associated with the fixed address after modifying the header;

receiving in an external handler a notification associated with an event affecting the page;

instructing an internal agent within the virtual partition to execute a task and return results based on the task to the external handler; and

taking a policy action based on the results returned by the internal agent using the hash based at least upon the fixed address.

12. The encoded logic of claim 11 , wherein the task comprises identifying the module based on a virtual address associated with the page.

13. The encoded logic of claim 11 , wherein the task comprises identifying the page as a mixed use page.

14. An apparatus, comprising:

a virtual partition;

an internal agent within the virtual partition;

an external handler; and

one or more processors operable to execute instructions associated with the virtual partition, the internal agent, and the external handler such that the apparatus is configured for:

identifying a module to be loaded;

determining a fixed address in the virtual partition wherein a previous instance of the module was loaded at the fixed address;

rebasing the module in a virtual partition to load at the fixed address, including:

determining file information for the module;

removing relocation data from the module; and

modifying a header in the module to specify the fixed address;

storing a hash of a page of memory associated with the fixed address after modifying the header;

receiving in the external handler a notification associated with an event affecting the page;

instructing the internal agent within the virtual partition to execute a task and return results based on the task to the external handler; and

taking a policy action based on the results returned by the internal agent using the hash based at least upon the fixed address.

15. The apparatus of claim 14 , wherein rebasing the module comprises patching a loader in an operating system to load the module at the fixed address.

16. The apparatus of claim 14 , wherein the task comprises identifying the module based on a virtual address associated with the page.

17. The encoded logic of claim 11 , wherein the operations further comprise, each time an instance of the module is to be loaded in the virtual partition, rebasing the instance of the module in the virtual partition at the fixed address.

18. The method of claim 1 , wherein rebasing the module in a virtual partition to load at the fixed address includes forcing the module to load at the same fixed address every time the module is loaded.

19. Logic encoded in one or more non-transitory media that includes code for execution and when executed by one or more processors is operable to perform operations comprising:

identifying a module to be loaded;

determining a fixed address in the virtual partition wherein a previous instance of the module was loaded at the fixed address;

rebasing the module in a virtual partition to load at the fixed address, including:

patching a loader in an operating system to load the module at the fixed address; and

upon launching the module, causing the loader to select the fixed address to load the module;

storing a hash of a page of memory associated with the fixed address after patching the loader;

receiving in an external handler a notification associated with an event affecting the page;

instructing an internal agent within the virtual partition to execute a task and return results based on the task to the external handler; and

taking a policy action based on the results returned by the internal agent using the hash based at least upon the fixed address.

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 Jul 27, 2011
From: EDWARDS, JONATHAN L.; DALCHER, GREGORY W.; TEDDY, JOHN D.
To: MCAFEE, INC.
Reel/Frame 026660/0971 →