IP Library Granted Patent US 11,809,881
Granted Patent B2
US 11,809,881 · App. 15/347,496 · Granted Nov 7, 2023

Target process injection prior to execution of marker libraries

Inventor: John J. Delio, Jr. (Manchester, NH)
Assignee: Riverbed Technology, LLC
G06F9/44521G06F11/34G06F11/36
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,809,881
App. No.
15/347,496
Granted
Nov 7, 2023
Kind
B2
Abstract

The disclosed embodiments provide a system that modifies execution of a target process in a computer system. During loading of a marker library by a target process, the system modifies import dependency data of the marker library to include an injection library as a dependency of a marker library. After the modified import dependency data is used to load the injection library into the target process by the operating system or loader, the system executes the injection library prior to execution of the marker library to revert the import dependency data to an original state and modify execution of the target process.

Claims (59)

1. A method, comprising:

locking, by an operating system executing on a processor, virtual memory of a target process, wherein the virtual memory of the target process includes import dependency data of a marker library;

executing a kernel-mode injection driver at a passive level within the context of the target process when the marker library is loaded by the target process, wherein the executing the kernel-mode injection driver at the passive level within the context of the target process enables the kernel-mode injection driver to modify virtual memory tables within the target process;

setting, by the kernel-mode injection driver, a copy-on-write flag for a set of virtual memory tables of the target process which includes the import dependency data;

modifying, by the kernel-model injection driver, the import dependency data of the marker library to include an injection library as a dependency of the marker library in a first entry of the import dependency data and a null entry in a second entry of the import dependency data to terminate a list of entries in the import dependency data; and

after the modified import dependency data is used to load the injection library into the target process, executing the injection library prior to execution of the marker library to:

revert the modified import dependency data to an original state; and

modify execution of the target process.

2. The method of claim 1 , wherein the injection library is selected based on an environment of the target process, wherein the environment is at least one of:

a processor architecture; and

a runtime version.

3. The method of claim 1 , wherein modifying the import dependency data of the marker library to include the injection library as the dependency of the marker library comprises:

replacing an original dependency of the marker library in the import dependency data with the dependency on the injection library.

4. The method of claim 3 , wherein reverting the import dependency data to the original state comprises:

writing the original dependency back into the import dependency data prior to execution of the marker library.

5. The method of claim 1 , wherein modifying the import dependency data of the marker library to include the injection library as the dependency of the marker library comprises:

modifying an import table in the import dependency data of the marker library to include the injection library.

6. The method of claim 1 , wherein the execution of the target process is modified using at least one of:

the injection library; and

an additional library loaded by the injection library.

7. The method of claim 1 , wherein modifying execution of the target process comprises at least one of:

profiling the target process;

modifying an environment of the target process; and

modifying a behavior of the target process.

8. The method of claim 1 , wherein the target process executes within a Windows operating system on the computer system.

9. An apparatus, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

lock virtual memory of a target process, wherein the virtual memory of the target process includes import dependency data of a marker library;

execute a kernel-mode injection driver at a passive level within the context of the target process when the marker library is loaded by the target process, wherein the executing the kernel-mode injection driver at the passive level within the context of the target process enables the kernel-mode injection driver to modify virtual memory tables of the target process;

set a copy-on-write flag for a set of virtual memory tables of the target process which includes the import dependency data;

modify the import dependency data of the marker library to include an injection library as a dependency of the marker library in a first entry of the import dependency data and a null entry in a second entry of the import dependency data to terminate a list of entries in the import dependency data; and

after the modified import dependency data is used to load the injection library into the target process, executing the injection library prior to execution of the marker library to:

revert the modified import dependency data to an original state; and

modify execution of the target process.

10. The apparatus of claim 9 , wherein the injection library is selected based on an environment of the target process, wherein the environment is at least one of:

a processor architecture; and

a runtime version.

11. The apparatus of claim 9 , wherein modifying the import dependency data of the marker library to include the injection library as the dependency of the marker library comprises at least one of:

replacing an original dependency of the marker library in the import dependency data with the dependency on the injection library; and

modifying an import table in the import dependency data of the marker library to include the injection library.

12. The apparatus of claim 9 , wherein the execution of the target process is modified using at least one of:

the injection library; and

an additional library loaded by the injection library.

13. The apparatus of claim 9 , wherein modifying execution of the target process comprises at least one of:

profiling the target process;

modifying an environment of the target process; and

modifying a behavior of the target process.

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

locking, by an operating system executing on a processor, virtual memory of a target process, wherein the virtual memory of the target process includes import dependency data of a marker library;

executing a kernel-mode injection driver at a passive level within the context of the target process when the marker library is loaded by the target process, wherein the executing the kernel-mode injection driver at the passive level within the context of the target process enables the kernel-mode injection driver to modify virtual memory tables within the target process;

setting, by the kernel-mode injection driver, a copy-on-write flag for a set of virtual memory tables of the target process which includes the import dependency data;

modifying the import dependency data of the marker library to include an injection library as a dependency of the marker library in a first entry of the import dependency data and a null entry in a second entry of the import dependency data to terminate a list of entries in the import dependency data; and

after the modified import dependency data is used to load the injection library into the target process, executing the injection library prior to execution of the marker library to:

revert the modified import dependency data to an original state; and

modify execution of the target process.

15. The non-transitory computer-readable medium of claim 14 , wherein modifying the import dependency data of the marker library to include the injection library as the dependency of the marker library comprises at least one of:

replacing an original dependency of the marker library in the import dependency data with the dependency on the injection library; and

modifying an import table in the import dependency data of the marker library to include the injection library.

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 Nov 21, 2016
From: DELIO, JOHN J., JR.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 040393/0414 →
Continuity (2)
Provisional Application 62253531 · Nov 10, 2015
Related Publication 20170132025A1 · May 11, 2017