IP Library Granted Patent US 11,188,352
Granted Patent B2
US 11,188,352 · App. 16/140,354 · Granted Nov 30, 2021

Advanced injection rule engine

Inventor: John J. Delio, Jr. (Manchester, NH)
Assignee: Riverbed Technology, Inc.
G06F9/44521G06F8/54G06F9/45504G06F11/3644G06F11/3466G06F2201/865
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 11,188,352
App. No.
16/140,354
Granted
Nov 30, 2021
Kind
B2
Abstract

Systems and techniques are described for controlling injection of a library into a process. Specifically, some embodiments provide an Advanced Injection Rule Engine (AIRE), which uses a set of rules to selectively inject a library, e.g., a dynamic-link library (DLL), into a process. Some embodiments implement a Domain Specific Language (DSL), called AIRE Script, to define the injection rules that are used by the AIRE at runtime.

Claims (36)

1. A method for controlling injection of a library into a process executing on a computer, the method comprising:

creating a set of rules to control injection of the library, wherein each rule is specified in a domain specific language having a syntax comprising an action statement and a condition statement, wherein the action statement includes a first keyword associated with activation or a second keyword associated with deactivation, and wherein the condition statement specifies a logical function that is defined over one or more properties of the process; and

applying, by an injection rule engine (IRE) executing on the computer, the set of rules to the process executing on the computer, wherein said applying comprises:

selecting, by the IRE, a rule from the set of rules,

evaluating, by the IRE, a condition specified in the selected rule, wherein the condition is defined over a set of properties associated with the process, wherein the set of properties includes an executable image name of the process, and

in response to the condition evaluating as true, performing, by the IRE, an injection action specified in the rule on the process.

2. The method of claim 1 , wherein rules are selected from the set of rules in a predetermined order.

3. The method of claim 2 , wherein in response to the condition evaluating as false, selecting a next rule from the set of rules to apply to the process.

4. The method of claim 1 , wherein performing the injection action comprises injecting the library into the process.

5. The method of claim 1 , wherein performing the injection action comprises (1) not injecting the library into the process, and (2) not applying any additional rules in the set of rules to the process.

6. The method of claim 1 , wherein the set of properties includes a filesystem path of the executable image of the process.

7. The method of claim 1 , wherein the set of properties includes a version of the executable image of the process.

8. The method of claim 1 , wherein the set of properties includes an indicator that specifies whether a particular library is loaded within the process.

9. The method of claim 1 , wherein the set of properties includes command line arguments that were provided when the process was executed.

10. The method of claim 1 , wherein the set of properties includes an environment variable of the process.

11. The method of claim 1 , wherein the set of properties includes a processor architecture of the executable image of the process.

12. The method of claim 1 , wherein the set of properties includes a user identifier associated with the process.

13. The method of claim 1 , wherein the library is an instrumentation library which, when injected into the process, provides visibility into processor and memory usage of the process.

14. A non-transitory computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to:

create a set of rules to control injection of the library, wherein each rule is specified in a domain specific language having a syntax comprising an action statement and a condition statement, wherein the action statement includes a first keyword associated with activation or a second keyword associated with deactivation, and wherein the condition statement specifies a logical function that is defined over one or more properties of the process; and

apply, by an injection rule engine (IRE) executing on the computer, the set of rules to a process executing on the computer, wherein said applying comprises:

selecting, by the IRE, a rule from the set of rules,

evaluating, by the IRE, a condition specified in the selected rule, wherein the condition is defined over a set of properties associated with the process, wherein the set of properties includes an executable image name of the process, and

in response to the condition evaluating as true, performing, by the IRE, an injection action specified in the rule on the process.

15. The non-transitory computer-readable storage medium of claim 14 , wherein rules are selected from the set of rules in a predetermined order.

16. The non-transitory computer-readable storage medium of claim 15 , wherein in response to the condition evaluating as false, selecting a next rule from the set of rules to apply to the process.

17. The non-transitory computer-readable storage medium of claim 14 , wherein performing the injection action comprises injecting the library into the process.

18. The non-transitory computer-readable storage medium of claim 14 , wherein performing the injection action comprises (1) not injecting the library into the process, and (2) not applying any additional rules in the set of rules to the process.

19. An apparatus, comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the processor to:

create a set of rules to control injection of the library, wherein each rule is specified in a domain specific language having a syntax comprising an action statement and a condition statement, wherein the action statement includes a first keyword associated with activation or a second keyword associated with deactivation, and wherein the condition statement specifies a logical function that is defined over one or more properties of the process; and

apply, by an injection rule engine (IRE) executing on the processor, the set of rules to a process executing on the processor, wherein said applying comprises:

selecting, by the IRE, a rule from the set of rules,

evaluating, by the IRE, a condition specified in the selected rule, wherein the condition is defined over a set of properties associated with the process, wherein the set of properties includes an executable image name of the process, and

in response to the condition evaluating as true, performing, by the IRE, an injection action specified in the rule on the process.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Mar 5, 2021
From: ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0147 →
PATENT SECURITY AGREEMENT Recorded Jul 10, 2019
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049720/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2018
From: DELIO, JOHN J., JR.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 047196/0401 →
Continuity (4)
Continuation In Part 15347496 · Nov 9, 2016
Provisional Application 62563543 · Sep 26, 2017
Provisional Application 62253531 · Nov 10, 2015
Related Publication 20190026130A1 · Jan 24, 2019