IP Library Granted Patent US 9,459,901
Granted Patent B2
US 9,459,901 · App. 13/892,800 · Granted Oct 4, 2016

System and method for the programmatic runtime de-obfuscation of obfuscated software utilizing virtual machine introspection and manipulation of virtual machine guest memory permissions

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,459,901
App. No.
13/892,800
Granted
Oct 4, 2016
Kind
B2
Abstract

A system and method operable to programmatically perform runtime de-obfuscation of obfuscated software via virtual machine introspection and manipulation of virtual machine guest memory permissions.

Claims (52)

1. A method to de-obfuscate obfuscated malicious software code in a virtual machine, the method comprising:

enumerating a first physical page associated with a virtual address space of a first piece of analyzed software code;

setting the first physical page to non-writable;

detecting a write to the first physical page; and

enumerating a second physical page following (i) a change in virtual address space allocation, and (ii) cessation of execution of the first piece of analyzed software,

wherein,

programmatic control of the virtual machine is provided via instrumentation.

2. The method according to claim 1 , further comprising:

saving the write to a memory address of the first physical page.

3. The method of claim 1 , further comprising:

changing the permission of the first physical page to not executable if the write is from the first piece of analyzed software code.

4. The method of claim 3 , further comprising:

executing an instruction associated with the first physical page; and

updating a status of the first physical page.

5. The method of claim 4 , further comprising:

storing the contents of the first physical page for review.

6. The method according to claim 3 , further comprising:

reading memory allocated for use by the virtual machine via a virtual machine introspection tool to determine if the write to the first physical page is from the first piece of analyzed software code.

7. The method of claim 3 , further comprising:

reading memory allocated for use by the virtual machine via a virtual machine introspection tool to determine a written to memory address of the first physical page.

8. The method of claim 7 , further comprising:

storing the memory address.

9. The method of claim 8 , wherein the memory address is stored in an analysis engine.

10. The method of claim 1 , further comprising:

traversing a page table for the enumerating of the first physical page.

11. The method of claim 1 , further comprising:

traversing a page table for the enumerating of the second physical page.

12. The method of claim 1 , further comprising:

enumerating the first piece of analyzed software code by at least one of (i) reviewing process tracking structures and (ii) matching byte strings in binary executable.

13. The method of claim 1 , wherein the enumerating of the first physical page, setting the first physical page to non-writable, the detecting of the write to the first physical page, and the enumerating of the second physical page are conducted by an analysis engine.

14. The method of claim 1 , further comprising:

enumerating a second piece of analyzed software following at least one of (i) a change in virtual address space allocation, and (ii) cessation of execution of the first piece of analyzed software.

15. A system to de-obfuscate obfuscated malicious software in a virtual machine, the system comprising:

an analysis engine configured to update a physical page status and save the physical page status to memory upon an occurrence of at least one of (i) execution of an instruction associated with a first physical page, and (ii) setting of a physical page permission to not executable,

wherein,

the analysis engine is configured to enumerate a second physical page following (i) a change in virtual address space allocation, and (ii) cessation of execution of a first piece of analyzed software, and

programmatic control of the virtual machine is provided via instrumentation.

16. The system of claim 15 , wherein the analysis engine is configured to set the physical page permission to not executable based upon data or an instruction received which indicate the potential presence of malware.

17. The system of claim 15 , further comprising:

a virtual machine introspection tool configured to determine if a write to the first physical page is from the first piece of analyzed software code by reading memory allocated for use by the virtual machine.

18. The system of claim 15 , further comprising:

a virtual machine introspection tool configured to determine a written to memory address of a write to the first physical page by reading memory allocated for use by the virtual machine.

19. The system of claim 18 , wherein the memory address is stored in the analysis engine.

20. A system for de-obfuscating obfuscated malicious software in a virtual machine, the system comprising:

a hardware processor; and

a storage medium communicatively coupled to the processor, the storage medium comprises an analysis engine configured to (a) update a physical page status and save the physical page status upon at least either (i) execution of an instruction associated with a first physical page or (ii) setting of a physical page permission to not executable, and (b) enumerate a second physical page following (i) a change in virtual address space allocation, and (ii) cessation of execution of a first piece of analyzed software.

21. The system of claim 20 , wherein the analysis engine is configured to set the physical page permission to not executable based upon data or an instruction received which indicates the potential presence of malware.

22. The system of claim 20 , further comprising:

a virtual machine introspection tool configured to determine if a write to the first physical page is from the first piece of analyzed software code by reading memory allocated for use by the virtual machine.

23. The system of claim 20 , further comprising:

a virtual machine introspection tool configured to determine a written to memory address of a write to the first physical page by reading memory allocated for use by the virtual machine.

24. The system of claim 23 , wherein the memory address is stored in the analysis engine.

Assignments (16)
RELEASE OF SECURITY INTEREST Recorded Aug 16, 2024
From: STG PARTNERS, LLC
To: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
Reel/Frame 068671/0435 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068656/0098 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068657/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068657/0764 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY HOLDINGS LLC; SKYHIGH SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 068657/0666 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068656/0920 →
MERGER Recorded Aug 13, 2024
From: FIREEYE SECURITY HOLDINGS US LLC
To: MUSARUBRA US LLC
Reel/Frame 068581/0279 →
SECURITY INTEREST Recorded Aug 1, 2024
From: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
To: STG PARTNERS, LLC
Reel/Frame 068324/0731 →
CHANGE OF NAME Recorded Mar 16, 2023
From: FIREEYE, INC.
To: MANDIANT, INC.
Reel/Frame 063287/0702 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2023
From: MANDIANT, INC.
To: FIREEYE SECURITY HOLDINGS US LLC
Reel/Frame 063287/0707 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 11, 2021
From: FIREEYE SECURITY HOLDINGS US LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057772/0791 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Oct 11, 2021
From: FIREEYE SECURITY HOLDINGS US LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057772/0681 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2016
From: MANDIANT, LLC
To: FIREEYE, INC.
Reel/Frame 038568/0881 →
CHANGE OF NAME Recorded Mar 5, 2014
From: MERCURY MERGER LLC
To: MANDIANT, LLC
Reel/Frame 032351/0340 →
MERGER Recorded Mar 4, 2014
From: MANDIANT CORPORATION
To: MERCURY MERGER LLC
Reel/Frame 032342/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2013
From: JUNG, ROBERT; SABA, ANTONY
To: MANDIANT CORPORATION
Reel/Frame 030693/0728 →