IP Library Granted Patent US 9,846,774
Granted Patent B2
US 9,846,774 · App. 14/752,911 · Granted Dec 19, 2017

Simulation of an application

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,846,774
App. No.
14/752,911
Granted
Dec 19, 2017
Kind
B2
Abstract

Particular embodiments described herein provide for an electronic device that can be configured to identify an application, run the application, log the parameters for each function call of the application, and store the logged parameters in an emulation table. The logged parameters can include a function call, input parameters, and output parameters. The emulation table can be used to simulate execution of an application without having to actually run the application.

Claims (46)

1. At least one non-transitory machine-readable medium comprising one or more instructions that when executed by at least one processor, cause the at least one processor to:

run an application in a sandbox environment, wherein the application includes a plurality of function calls;

log parameters for each function call of the application during run time in the sandbox environment, wherein the logged parameters include each function call, input parameters for each function call, and output parameters for each function call;

store the logged parameters in an emulation table; and

use the logged parameters in a simulation environment to simulate execution of a function call of the plurality of function calls, wherein simulating execution of the function call comprises simulating the function call without having to run the function call by:

determining from the emulation table whether a current simulation environment parameter set for the function call matches logged input parameters for the function call; and

in response to determining the current simulation environment parameter set matches logged input parameters, returning the logged output parameters for the function call.

2. The at least one non-transitory machine-readable medium of claim 1 , further comprising one or more instructions that when executed by the at least one processor, further cause the at least one processor to:

assess overall logging data and determine prevalent combinations of input to output parameter mappings for each function call.

3. The at least one non-transitory machine-readable medium of claim 2 , further comprising one or more instructions that when executed by the at least one processor, further cause the at least one processor to:

remove at least one parameter that does not influence an output of at least one of the function calls.

4. The at least one non-transitory machine-readable medium of claim 1 , further comprising one or more instructions that when executed by the at least one processor, further cause the at least one processor to:

communicate the emulation table to an electronic device.

5. An apparatus comprising:

a network emulation module configured to:

run an application in a sandbox environment, wherein the application includes a plurality of function calls;

log parameters for each function call of the application during run time in the sandbox environment, wherein the logged parameters include each function call, input parameters for each function call, and output parameters for each function call;

store the logged parameters in an emulation table; and

use the logged parameters in a simulation environment to simulate execution of a function call of the plurality of function calls, wherein simulating execution of the function call comprises simulating the function call without having to run the function call by:

determining from the emulation table whether a current simulation environment parameter set for the function call matches logged input parameters for the function call; and

in response to determining the current simulation environment parameter set matches logged input parameters, returning the logged output parameters for the function call.

6. The apparatus of claim 5 , wherein the network emulation module is further configured to:

assess overall logging data and determine prevalent combinations of input to output parameter mappings for each function call.

7. The apparatus of claim 5 , wherein the network emulation module is further configured to:

prune out parameters that do not influence an output of each function call.

8. The apparatus of claim 7 , wherein the network emulation module is further configured to:

communicate the emulation table to an electronic device.

9. A method comprising:

identifying an application on an electronic device, wherein the application includes a plurality of function calls;

running the application in a sandbox environment;

logging parameters for each function call of the application during run time in the sandbox environment, wherein the logged parameters include each function call, input parameters for each function call, and output parameters for each function call;

storing the logged parameters in an emulation table; and

simulating an execution of the application using the emulation table, wherein simulating execution of the application comprises simulating a function call of the plurality of function calls without having to run the function call by:

determining from the emulation table whether a current simulation environment parameter set for the function call matches logged input parameters for the function call; and

in response to determining the current simulation environment parameter set matches logged input parameters, returning the logged output parameters for the function call.

10. The method of claim 9 , further comprising:

analyzing the simulation of the execution of the application for the presence of malware.

11. The method of claim 9 , wherein simulating the execution of the application using the emulation table is performed on the electronic device.

12. A system for the simulation of an application, the system comprising:

a network emulation module configured to:

run an application in a sandbox environment, wherein the application includes a plurality of function calls;

log parameters for each function call of the application during run time in the sandbox environment, wherein the logged parameters include each function call, input parameters for each function call, and output parameters for each function call;

store the logged parameters in an emulation table; and

use the logged parameters in a simulation environment to simulate execution of a function call of the plurality of function calls, wherein simulating execution of the function call comprises simulating the function call without having to run the function call by:

determining from the emulation table whether a current simulation environment parameter set for the function call matches logged input parameters for the function call; and

in response to determining the current simulation environment parameter set matches logged input parameters, returning the logged output parameters for the function call.

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 8, 2015
From: ALME, CHRISTOPH; HAHN, SLAWA; FINKE, STEFAN
To: MCAFEE, INC.
Reel/Frame 036028/0680 →