Application program interface call replay tool
First Claim
1. A computing device containing a software tool for submitting API calls corresponding to logged API calls to various components of the computing device, the software tool comprising:
- symbol tables for mapping symbols, parameters and memory references collected from a log of API calls to corresponding memory references allocated to the software tool, wherein the mapped symbols, parameters and memory references are used for submitting subsequent API calls corresponding to the logged API calls from within the memory space of the software tool to the various components of the computer device, and wherein the log of API calls records API calls that have been previously invoked in an execution environment of the software tool;
an API call builder for creating an API call code sequence for submitting subsequent API calls corresponding to logged API calls to the various components of the computing device according to the mapped memory references within a symbol table; and
an execution template corresponding to binary files associated with the logged API calls for maintaining a set of resources from the binary files, wherein the execution template is utilized by an API call executor so that the API call sequence created by the API call builder is executed within the execution environment of the software tool.
2 Assignments
0 Petitions
Accused Products
Abstract
An application program interface (API) replay tool and method is disclosed for modeling and testing APIs. The replay tool receives as input a set of API calls and associated context information and resources. A set of components are called to map variables and a context into the replay tool environment. An API builder translates the original API call (including mapping memory references of parameters) into a sequence of assembly code instructions, constituting the replayed API call, which is placed in an execution buffer. The execution buffer is thereafter executed in a replay environment including a set of resources extracted from a source binary file associated with the replayed API. Thereafter, the operating system, or other suitable consumer of API calls, executes the call in the context recreated by the API replay tool prior to passing the call.
-
Citations
23 Claims
-
1. A computing device containing a software tool for submitting API calls corresponding to logged API calls to various components of the computing device, the software tool comprising:
-
symbol tables for mapping symbols, parameters and memory references collected from a log of API calls to corresponding memory references allocated to the software tool, wherein the mapped symbols, parameters and memory references are used for submitting subsequent API calls corresponding to the logged API calls from within the memory space of the software tool to the various components of the computer device, and wherein the log of API calls records API calls that have been previously invoked in an execution environment of the software tool; an API call builder for creating an API call code sequence for submitting subsequent API calls corresponding to logged API calls to the various components of the computing device according to the mapped memory references within a symbol table; and an execution template corresponding to binary files associated with the logged API calls for maintaining a set of resources from the binary files, wherein the execution template is utilized by an API call executor so that the API call sequence created by the API call builder is executed within the execution environment of the software tool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method using a software tool for invoking API calls within an execution environment based on logged API calls, the method comprising:
-
mapping symbols, parameters and memory references in at least one symbol table to corresponding memory references allocated to the software tool, wherein the mapped symbols, parameters and memory references in the at least one symbol table are collected from a log of API calls and are used for invoking subsequent API calls based on the logged API calls from within the memory space of the software tool, and wherein the log of API calls records API calls that have been previously invoked in the execution environment of the software tool; and creating an API call code sequence for invoking the subsequent API calls based on the logged API calls, wherein the mapped memory references are specified for invoking the subsequent API calls; and maintaining, by an execution template corresponding to binary files associated with the logged API calls, a set of resources from the binary files, wherein the execution template is utilized by an API call executor so that the created API call sequence is executed within the execution environment of the software tool. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable storage medium including computer-executable instructions for invoking API calls within an execution environment of a software tool based on logged API calls to various components of a computing device, the computer-executable instructions performing the steps of:
-
mapping symbols, parameters and memory references in at least one symbol table to corresponding memory references allocated to the software tool, wherein the mapped symbols, parameters and memory references in the at least one symbol table are collected from a log of API calls and are used for invoking subsequent API calls based on the logged API calls from within the memory space of the software tool, and wherein the log of API calls records API calls that have been previously invoked in the execution environment of the software tool; and creating an API call code sequence for invoking the subsequent API calls based on the logged API calls, wherein the mapped memory references are specified for invoking the subsequent API calls; and maintaining, by an execution template corresponding to binary files associated with the logged API calls, a set of resources from the binary files, wherein the execution template is utilized by an API call executor so that the created API call sequence is executed within the execution environment of the software tool. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification