Extracting source code

US9612850B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9612850-B2
Application numberUS-201514794596-A
CountryUS
Kind codeB2
Filing dateJul 8, 2015
Priority dateMay 30, 2014
Publication dateApr 4, 2017
Grant dateApr 4, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for extracting source code. One of the methods includes receiving, by a newly created process, a request to execute code of an executable file in the newly created process, wherein the request specifies a parameter. The newly created process loads a process interception library. Library initialization code of the process interception library determines whether the parameter should be intercepted. In response to determining that the parameter should be intercepted, the parameter is provided to another process.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed on a computer system comprising one or more computers, the method comprising: receiving, by a newly created process, a request to execute code of an executable file in the newly created process, wherein the request specifies a location of a source code file; loading, by the newly created process, a process interception library; determining, by library initialization code of the process interception library, that the executable file is a compiler; and in response to determining that the executable file is a compiler, invoking, by the library initialization code, a new extractor process and providing the location of the source code file as a parameter to the new extractor process. 2. The method of claim 1 , wherein the library initialization code is code that executes in response to the process interception library being loaded. 3. The method of claim 2 , further comprising executing the library initialization code before executing a main routine of the executable file. 4. The method of claim 1 , wherein loading, by the newly created process, the process interception library causes all child processes of the newly created process also to load the process interception library. 5. The method of claim 4 , wherein loading, by the newly created process, the process interception library preempts one or more default create-process functions of a particular operating system. 6. The method of claim 5 , further comprising invoking a new compiler process using a default create process function. 7. The method of claim 6 , wherein invoking the new compiler process comprises modifying an argument or an environment variable specified in the request. 8. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving, by a newly created process, a request to execute code of an executable file in the newly created process, wherein the request specifies a location of a source code file; loading, by the newly created process, a process interception library; determining, by library initialization code of the process interception library, that the executable file is a compiler; and in response to determining that the executable file is a compiler, invoking, by the library initialization code, a new extractor process and providing the location of the source code file as a parameter to the new extractor process. 9. The system of claim 8 , wherein the library initialization code is code that executes in response to the process interception library being loaded. 10. The system of claim 9 , wherein the operations further comprise executing the library initialization code before executing a main routine of the executable file. 11. The system of claim 8 , wherein loading, by the newly created process, the process interception library causes all child processes of the newly created process also to load the process interception library. 12. The system of claim 11 , wherein loading, by the newly created process, the process interception library preempts one or more default create-process functions of a particular operating system. 13. The system of claim 12 , wherein the operations further comprise invoking a new compiler process using a default create-process function. 14. The system of claim 13 , wherein invoking the new compiler process comprises modifying an argument or an environment variable specified in the request. 15. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: receiving, by a newly created process, a request to execute code of an executable file in the newly created process, wherein the request specifies a location of a source code file; loading, by the newly created process, a process interception library; determining, by library initialization code of the process interception library, that the executable file is a compiler; and in response to determining that the executable file is a compiler, invoking, by the library initialization code, a new extractor process and providing the location of the source code file as a parameter to the new extractor process. 16. The computer program product of claim 15 , wherein the library initialization code is code that executes in response to the process interception library being loaded. 17. The computer program product of claim 16 , wherein the operations further comprise executing the library initialization code before executing a main routine of the executable file. 18. The computer program product of claim 15 , wherein loading, by the newly created process, the process interception library causes all child processes of the newly created process also to load the process interception library. 19. The computer program product of claim 18 , wherein loading, by the newly created process, the process interception library preempts one or more default create-process functions of a particular operating system. 20. The computer program product of claim 19 , wherein the operations further comprise invoking a new compiler process using a default create-process function. 21. The computer program product of claim 20 , wherein invoking the new compiler process comprises modifying an argument or an environment variable specified in the request.

Assignees

Inventors

Classifications

  • Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title

  • G06F8/54Primary

    Link editing before load time · CPC title

  • Preprocessors · CPC title

  • Software maintenance or management · CPC title

  • Structural analysis for program understanding · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9612850B2 cover?
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for extracting source code. One of the methods includes receiving, by a newly created process, a request to execute code of an executable file in the newly created process, wherein the request specifies a parameter. The newly created process loads a process interception library. Library initializatio…
Who is the assignee on this patent?
Semmle Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/44521. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).