IP Library Granted Patent US 9,489,182
Granted Patent B1
US 9,489,182 · App. 14/947,631 · Granted Nov 8, 2016

Transparent process interception

Inventor: Peter Cawley (Oxford, GB)
Assignee: Semmle Limited
G06F8/443G06F9/45504
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,489,182
App. No.
14/947,631
Granted
Nov 8, 2016
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for transparently instrumenting a build system. One of the methods includes setting, in an execution environment of a computer system, a first environment variable that specifies a custom agent to be executed in the execution environment. A request by the system to create a virtual machine using a default create VM function is intercepted by a custom create VM function. The custom create VM function removes the first environment variable from the execution environment, and the custom create VM function executes the default create VM function to invoke a VM having the custom agent without the execution environment having the first environment variable being set.

Claims (58)

1. A computer-implemented method comprising:

setting, in an execution environment of a computer system, a first environment variable that specifies a custom agent to be executed in the execution environment;

intercepting, by a custom create VM function, a request by the system to create a virtual machine using a default create VM function;

removing, by the custom create VM function, the first environment variable from the execution environment; and

executing, by the custom create VM function, the default create VM function to invoke a VM having the custom agent without the execution environment having the first environment variable being set.

2. The method of claim 1 , wherein executing the default create VM function comprises executing the default create VM function with the custom agent specified as an argument to the default create VM function.

3. The method of claim 1 , further comprising attaching the custom agent to the VM after the VM has been invoked.

4. The method of claim 1 , further comprising:

receiving, by the custom agent, an identification of one or more source code files; and

extracting, by the custom agent, source code of the one or more source code files.

5. The method of claim 1 , wherein the system generates diagnostic messages whenever the default create VM function is called with the first environment variable being set.

6. The method of claim 1 , wherein the default create VM function is a Java create VM function.

7. The method of claim 1 , further comprising resetting, by the custom create VM function, the first environment variable in the execution environment after the default create VM function has been called.

8. A computer-implemented method comprising:

setting, in an execution environment of a computer system, a first environment variable that specifies a custom agent to be executed in the execution environment;

intercepting, by a custom symbol lookup function, a request by the system to a default symbol lookup function to return an identifier of a particular function;

determining, by the custom symbol lookup function, that the particular function is a default create VM function;

in response to the determining, generating, by the custom symbol lookup function, a reference to a custom create VM function, wherein the custom create VM function removes the first environment variable from the execution environment before executing the default create VM function to invoke a VM having the custom agent; and

providing, by the custom symbol lookup function, the reference to the custom create VM function in response to the request, thereby causing a build system to launch the VM having the custom agent without the execution environment having the first environment variable being set.

9. The method of claim 8 , wherein executing the default create VM function comprises executing the default create VM function with the custom agent specified as an argument to the default create VM function.

10. The method of claim 8 , further comprising attaching the custom agent to the VM after the VM has been invoked.

11. The method of claim 8 , further comprising:

receiving, by the custom agent, an identification of one or more source code files; and

extracting, by the custom agent, source code of the one or more source code files.

12. The method of claim 8 , wherein the system generates a diagnostic message whenever the default create VM function is called with the first environment variable being set.

13. The method of claim 8 , wherein the default create VM function is a Java default create VM function.

14. The method of claim 8 , wherein intercepting the request comprises overloading the default symbol lookup function with the custom symbol lookup function.

15. The method of claim 8 , further comprising resetting the first environment variable in the execution environment after the default create VM function is called.

16. A system comprising:

one or more computers and one or more non-transitory computer storage media storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

setting, in an execution environment of a computer system, a first environment variable that specifies a custom agent to be executed in the execution environment;

intercepting, by a custom create VM function, a request by the system to create a virtual machine using a default create VM function;

removing, by the custom create VM function, the first environment variable from the execution environment; and

executing, by the custom create VM function, the default create VM function to invoke a VM having the custom agent without the execution environment having the first environment variable being set.

17. The system of claim 16 , wherein executing the default create VM function comprises executing the default create VM function with the custom agent specified as an argument to the default create VM function.

18. The system of claim 16 , wherein the operations further comprise attaching the custom agent to the VM after the VM has been invoked.

19. The system of claim 16 , wherein the operations further comprise:

receiving, by the custom agent, an identification of one or more source code files; and

extracting, by the custom agent, source code of the one or more source code files.

20. The system of claim 16 , wherein the system generates diagnostic messages whenever the default create VM function is called with the first environment variable being set.

21. The system of claim 16 , wherein the default create VM function is a Java create VM function.

22. The system of claim 16 , wherein the operations further comprise resetting, by the custom create VM function, the first environment variable in the execution environment after the default create VM function has been called.

23. A system comprising:

one or more computers and one or more non-transitory computer storage media storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

setting, in an execution environment of a computer system, a first environment variable that specifies a custom agent to be executed in the execution environment;

intercepting, by a custom symbol lookup function, a request by the system to a default symbol lookup function to return an identifier of a particular function;

determining, by the custom symbol lookup function, that the particular function is a default create VM function;

in response to the determining, generating, by the custom symbol lookup function, a reference to a custom create VM function, wherein the custom create VM function removes the first environment variable from the execution environment before executing the default create VM function to invoke a VM having the custom agent; and

providing, by the custom symbol lookup function, the reference to the custom create VM function in response to the request, thereby causing a build system to launch the VM having the custom agent without the execution environment having the first environment variable being set.

24. The system of claim 23 , wherein executing the default create VM function comprises executing the default create VM function with the custom agent specified as an argument to the default create VM function.

25. The system of claim 23 , wherein the operations further comprise attaching the custom agent to the VM after the VM has been invoked.

26. The system of claim 23 , wherein the operations further comprise:

receiving, by the custom agent, an identification of one or more source code files; and

extracting, by the custom agent, source code of the one or more source code files.

27. The system of claim 23 , wherein the system generates a diagnostic message whenever the default create VM function is called with the first environment variable being set.

28. The system of claim 23 , wherein the default create VM function is a Java default create VM function.

29. The system of claim 23 , wherein intercepting the request comprises overloading the default symbol lookup function with the custom symbol lookup function.

30. The system of claim 23 , wherein the operations further comprise resetting the first environment variable in the execution environment after the default create VM function is called.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: GITHUB SOFTWARE UK LTD.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 051710/0252 →
CHANGE OF NAME Recorded Dec 11, 2019
From: SEMMLE LTD.
To: GITHUB SOFTWARE UK LTD.
Reel/Frame 052027/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2015
From: CAWLEY, PETER
To: SEMMLE LIMITED
Reel/Frame 037393/0104 →