IP Library Granted Patent US 10,210,331
Granted Patent B2
US 10,210,331 · App. 14/998,178 · Granted Feb 19, 2019

Executing full logical paths for malware detection

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 10,210,331
App. No.
14/998,178
Granted
Feb 19, 2019
Kind
B2
Abstract

Embodiments include identifying, at a logical path node, a first logical path and a second logical path; executing, by a processor implemented at least partially in hardware, a first set of instructions to follow the first logical path; storing, in a memory, a first set of information obtained from following the first logical path; evaluating, by a malware handler module implemented at least partially in hardware, the first set of information for malware; restoring, from the memory, environmental data for the first logical path node; executing, by the processor, a second set of instructions to follow the second logical path; storing, in a memory, a second set of information obtained from following the second logical path; and evaluating, by the malware handler module, the second set of information for malware.

Claims (55)

1. A computer program product tangibly embodied on non-transitory, computer readable media, the computer program product comprising instructions operable, when executed, to:

identify, at a parent node of a logical path, a first logical path and a second logical path;

responsive to storing environmental data for the parent node, execute, by a processor implemented at least partially in hardware, a first set of instructions to follow the first logical path from the parent node, wherein the environmental data is a parameter for executing an instruction for the parent node;

store, in a memory, a first set of information obtained from following the first logical path;

evaluate, by a malware handler module implemented at least partially in hardware, the first set of information for malware;

restore, from the memory, the environmental data for the parent node to execute, by the processor, a second set of instructions to follow the second logical path;

store, in a memory, a second set of information obtained from following the second logical path; and

evaluate, by the malware handler module, the second set of information for malware.

2. The computer program product of claim 1 , wherein the instructions are further operable, when executed, to:

access one or more memory registers to execute the first set of instructions; and

access one or more memory registers to execute the second set of instructions.

3. The computer program product of claim 1 , wherein the environmental data comprises an identification of a first condition to be met for executing the first logical path and a second condition to be met for executing the second logical path.

4. The computer program product of claim 1 , wherein the first and second sets of instructions are executed from a sandbox environment.

5. The computer program product of claim 1 , wherein the evaluation by the malware handler module of the first and second sets of information is performed by execution profiling.

6. The computer program product of claim 1 , wherein the instructions are further operable, when executed, to:

start a timer prior to executing the first set of instructions to follow the first logical path; and

terminate execution of a logical path at an expiration of the timer.

7. The computer program product of claim 1 , wherein the instructions are further operable, when executed, to:

receive configuration information identifying a number of branches from the parent node to execute; and

terminate execution of a branch after the identified number of branches have been executed.

8. The computer program product of claim 1 , wherein the instructions are further operable, when executed, to terminate execution of a branch upon detection of malware.

9. A computer implemented method, comprising:

identifying, at a logical path node, a first logical path and a second logical path;

responsive to storing environmental data for the logical path node, executing, by a processor implemented at least partially in hardware, a first set of instructions to follow the first logical path, wherein the environmental data is a parameter for executing an instruction for the logical path node;

storing, in a memory, a first set of information obtained from following the first logical path;

evaluating, by a malware handler module implemented at least partially in hardware, the first set of information for malware;

restoring, from the memory, the environmental data for the logical path node to execute, by the processor, a second set of instructions to follow the second logical path;

storing, in a memory, a second set of information obtained from following the second logical path; and

evaluating, by the malware handler module, the second set of information for malware.

10. The computer implemented method of claim 9 , further comprising:

accessing one or more memory registers to execute the first set of instructions; and

accessing one or more memory registers to execute the second set of instructions.

11. The computer implemented method of claim 9 , wherein the environmental data comprises an identification of a first condition to be met for executing the first logical path and a second condition to be met for executing the second logical path.

12. The computer implemented method of claim 9 , wherein the first and second sets of instructions are executed from a sandbox environment.

13. The computer implemented method of claim 9 , wherein the evaluation by the malware handler module of the first and second sets of information is performed by execution profiling.

14. The computer implemented method of claim 9 , further comprising:

starting a timer prior to executing the first set of instructions to follow the first logical path; and

terminating execution of a logical path at an expiration of the timer.

15. The computer implemented method of claim 9 , further comprising:

receiving configuration information identifying a number of branches from the logical path node to execute; and

terminating execution of a branch after the identified number of branches have been executed.

16. The computer implemented method of claim 9 , further comprising:

terminating execution of a branch upon detection of malware.

17. A system for executing a full logical path in an executable application, the system comprising:

a processor implemented at least partially in hardware;

a memory for storing instructions;

an execution application module, implemented at least partially in hardware, to,

responsive to storing environmental data associated with a parent node of the full logical path, execute a first logical path from the parent node, wherein the environmental data is a parameter for executing an instruction for the parent node; and

restore the environmental data associated with the parent node to execute a second logical path from the parent node; and

a malware handler module, implemented at least partially in hardware, to monitor execution of each logical path for malware.

18. The system of claim 17 , further comprising

a sandbox environment implemented at least partially in hardware, the execution application module to execute the first and second logical paths within the sandbox environment.

19. The system of claim 17 , wherein the malware handler module interfaces with an execution profiler, implemented at least partially in hardware, to evaluate executions of each logical path for malware.

20. The system of claim 17 , wherein the environmental data associated with the parent node of the full logical path comprises a register setting associated with executing instructions for the parent node.

21. The computer program product of claim 1 , wherein the environmental data for the parent node is restored based on an execution of the first set of instructions.

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 May 3, 2016
From: LU, LIXIN; DENG, LU; SHEPSEN, ALEXANDER; XU, XIANG; HUANG, LIANGJUN; LIU, HUA; HUANG, KAI; SAHITA, RAVI; LI, XIAONING
To: MCAFEE, INC.
Reel/Frame 038596/0152 →