IP Library Granted Patent US 8,561,176
Granted Patent B1
US 8,561,176 · App. 11/626,808 · Granted Oct 15, 2013

System, method and computer program product for monitoring and/or analyzing at least one aspect of an invocation of an interface

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 8,561,176
App. No.
11/626,808
Granted
Oct 15, 2013
Kind
B1
Abstract

A system, method and computer program product are provided. In use, execution of a portion of internal code of an interface is identified. Further, in response to the execution of the portion of internal code, at least one aspect of an invocation of the interface is monitored and/or analyzed.

Claims (39)

1. A method, comprising:

identifying execution of a first portion of code of an interface, the first portion of code located internal to the interface and after an entry point to the interface, wherein the entry point of the interface represents a starting execution location of the interface under normal usage conditions; and

in response to the identification of execution of the first portion of code, at least one of monitoring and analyzing at least one aspect of an invocation of the interface,

wherein at least one aspect of the monitoring or analyzing is performed utilizing a callback function initiated by the first portion of code of the interface;

making a first determination of whether the entry point of the interface was invoked prior to the execution of the first portion of code of the interface; and

determining the at least one aspect of the invocation of the interface is valid or not valid based on the first determination.

2. The method as recited in claim 1 , wherein the interface includes an application program interface.

3. The method as recited in claim 1 , wherein the first portion of code is predetermined.

4. The method as recited in claim 1 , wherein the first portion of code is determined during runtime.

5. The method as recited in claim 1 , and further comprising validating the first portion of code.

6. The method as recited in claim 1 , wherein the identifying execution of the first portion of code includes identifying execution of instructions at a target address associated with the first portion of code.

7. The method as recited in claim 1 , wherein at least one aspect of the invocation of the interface includes an invocation of the entry point of the interface.

8. The method as recited in claim 1 , wherein the execution of the first portion of the code of the interface is identified as potentially unwanted if it is determined that the entry point of the interface was not invoked.

9. The method as recited in claim 7 , and further comprising validating the invocation of the entry point of the interface.

10. The method as recited in claim 1 , wherein at least one aspect of the invocation of the interface includes an invocation of a second portion of code of the interface, the second portion configured to execute only after the first portion under normal usage conditions.

11. The method as recited in claim 1 , wherein the at least one aspect of the invocation of the interface includes an invocation of a third portion of code of the interface, the third portion configured to execute prior to the first portion under normal usage conditions.

12. The method as recited in claim 11 , and further comprising determining whether the third portion of code was invoked.

13. The method as recited in claim 1 , and further comprising identifying the execution of the first portion of code as potentially unwanted based on the at least one of monitoring and analyzing at least one aspect of the invocation of the interface.

14. The method as recited in claim 1 , wherein at least one aspect of the monitoring or analyzing is performed utilizing an in-line hook.

15. The method as recited in claim 1 , wherein at least one aspect of the monitoring or analyzing is performed utilizing a virtual machine.

16. A computer program product embodied on a non-transitory computer readable medium, comprising computer executable instructions stored thereon to cause a processor to:

identify execution of a first portion of code of an interface, the first portion of code located internal to the interface and after an entry point to the interface, wherein the entry point of the interface represents a starting execution location of the interface under normal usage conditions; and

perform at least one of monitoring and analyzing at least one aspect of an invocation of the interface, in response to the identification of execution of the first portion of code,

wherein at least one aspect of the monitoring or analyzing is performed utilizing a callback function initiated by the first portion of code of the interface;

making a first determination of whether the entry point of the interface was invoked prior to the execution of the first portion of code of the interface; and

determining the at least one aspect of the invocation of the interface is valid or not valid based on the first determination.

17. A system, comprising:

a hardware processor for identifying execution of a first portion of code of an interface, the first portion of code located internal to the interface and after an entry point to the interface, wherein the entry point of the interface represents a starting execution location of the interface under normal usage conditions, the hardware processor further adapted for at least one of monitoring and analyzing at least one aspect of an invocation of the interface in response to the execution of the first portion of code,

wherein at least one aspect of the monitoring or analyzing is performed utilizing a callback function initiated by the first portion of code of the interface;

the processor further adapted to make a first determination of whether the entry point of the interface was invoked prior to the execution of the first portion of code of the interface; and

the processor further adapted to determine the at least one aspect of the invocation of the interface is valid or not valid based on the first determination.

18. The method as recited in claim 1 , wherein an address associated with the callback function is located within the first portion of code.

19. The method as recited in claim 4 , wherein the first portion of code is determined during runtime utilizing a starting address of the interface, a length of the interface, and a validation that there is only one entry point to the interface.

20. The method as recited in claim 11 , and further comprising determining whether the third portion of code was invoked prior to the first portion of code.

21. The method as recited in claim 8 , wherein the determining whether the entry point of the interface was invoked includes checking recorded invocation information stored upon execution of code near the entry point of the interface.

22. The method as recited in claim 12 , wherein the determining whether the third portion of code was invoked includes checking recorded invocation information stored upon execution of code near the third portion.

23. The method of claim 1 , further comprising:

recording information pertaining to the identity of an entity that initiated the invocation of the interface based on a determination that the entry point of the interface was invoked prior to the execution of the first portion of code of the interface; and

cleaning up said recorded information by deleting or removing said information once execution of said interface is complete.

Assignments (8)
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 →