×

Code injection and code interception in an operating system with multiple subsystem environments

  • US 9,678,747 B2
  • Filed: 02/08/2012
  • Issued: 06/13/2017
  • Est. Priority Date: 02/08/2011
  • Status: Active Grant
First Claim
Patent Images

1. A method, comprising:

  • creating, by a computing device, a virtual process that is a non-executing image of a target process, the non-executing virtual process image comprising computer program instructions and data, the non-executing virtual process image comprising a snapshot of the target process, including data of the target process, at least a portion of software modules of the target process, and a state of the target process, wherein the state of the target process is such that at least one data structure is not initialized;

    analyzing, by the computing device, the non-executing virtual process image to determine a corresponding location in the associated target process that includes computer program instructions that will be executed before initialization of the target process is completed, to determine validity of the location, and to determine a collision likelihood at the location, using at least one of a disassembler, memory reading, writing, and allocation analysis, and Process Environment Block analysis, wherein the analyzing comprises determining compatibility of a first portion of code with the target process, the compatibility including at least one of determining that the first portion of code loads modules targeting incompatible platforms and determining that the first portion of code loads modules utilizing differing executable file formats;

    injecting, by the computing device, the first portion of code into the target process, at the determined location in the target process if the determined location is valid and collision is not likely, the first portion of code adapted based at least on an outcome of the analyzing action, wherein the first portion of code comprises at least one hook to a code loader; and

    loading by the code loader, the at least one module compatible with the target process even though the target process targets an incompatible platform.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×