IP Library Granted Patent US 9,189,363
Granted Patent B2
US 9,189,363 · App. 12/900,393 · Granted Nov 17, 2015

System, method, and computer program product for monitoring an execution flow of a function

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,189,363
App. No.
12/900,393
Granted
Nov 17, 2015
Kind
B2
Abstract

A system, method, and computer program product are provided for monitoring an execution flow of a function. In use, data associated with a function is identified within a call stack. Additionally, a call stack frame is determined from freed memory in the call stack. Further, an execution flow of the function is monitored, utilizing the call stack frame from the freed memory.

Claims (29)

1. One or more non-transitory computer readable media comprising instructions stored thereon that when executed by a programmable device cause the programmable device to:

identify data associated with a function within a call stack;

determine a former call stack frame from an area of memory outside the call stack, wherein the former call stack frame includes memory that was previously popped off the call stack; and

monitor an execution flow of the function by monitoring the former call stack frame.

2. The one or more non-transitory computer readable media of claim 1 , wherein the function is associated with an instance of software.

3. The one or more non-transitory computer readable media of claim 1 , wherein the data includes an entry in the call stack.

4. The one or more non-transitory computer readable media of claim 3 , wherein the entry includes a return address that identifies a function that pushed the entry onto the call stack.

5. The one or more non-transitory computer readable media of claim 1 , wherein the data is identified within the call stack as a result of generating a test event.

6. The one or more non-transitory computer readable media of claim 1 , wherein the data associated with the function is identified by monitoring the call stack.

7. The one or more non-transitory computer readable media of claim 1 , wherein hooking based monitoring of the call stack is used to identify the data associated with the function.

8. The one or more non-transitory computer readable media of claim 1 , wherein the former call stack frame includes memory below a stack pointer associated with the call stack.

9. The one or more non-transitory computer readable media of claim 1 , wherein a monitoring point is placed on the call stack frame.

10. The one or more non-transitory computer readable media of claim 9 , wherein the monitoring point identifies code for handling a test event.

11. The one or more non-transitory computer readable media of claim 1 , wherein the monitoring of the execution flow of the function is dynamically adjusted, based on the former call stack frame.

12. The one or more non-transitory computer readable media of claim 1 , wherein monitoring the execution flow of the function includes enabling additional monitoring, based on an analysis of the former call stack frame.

13. The one or more non-transitory computer readable media of claim 1 , further comprising instructions that when executed cause the programmable device to determine whether the former call stack frame has been overwritten by a second call stack entry subsequent to a first call stack entry in the former call stack frame.

14. The one or more non-transitory computer readable media of claim 1 , wherein a level of confidence associated with the former call stack frame is determined.

15. The one or more non-transitory computer readable media of claim 14 , further comprising instructions that when executed cause the programmable device to determine whether the former call stack frame is compromised, based on the level of confidence.

16. A method, comprising:

identifying data associated with a function within a call stack;

determining a former call stack frame from an area of memory outside the call stack, wherein the former call stack frame includes memory that previously held an active call stack entry; and

monitoring an execution flow of the function by monitoring the former call stack frame.

17. A system, comprising:

a processor; and

a non-transitory computer readable medium comprising instructions stored thereon that when executed configure the processor to:

identify data associated with a function within a call stack,

determine a former call stack frame from an area of memory outside the call stack, wherein the former call stack frame includes memory that previously held an active stack entry, and

monitor an execution flow of the function by monitoring the former call stack frame.

18. The system of claim 17 , wherein the function is associated with an instance of software.

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 Oct 13, 2010
From: DALCHER, GREGORY WILLIAM
To: MCAFEE, INC.
Reel/Frame 025135/0098 →