Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines
First Claim
1. A computer implemented method of verifying conformance or non-conformance of an application program to rules that define services which an operating system will provide, without requiring reference to a source code version of said application program, comprising the steps of,:
- from a first binary version of said application program, forming an instrumented binary version of said application program, by inserting monitoring code instruction routines corresponding respectively to different types of requests for service, and by processing said first binary version by locating and identifying requests for services in said first binary version and redirecting each said request for service to a corresponding one of said monitoring code instruction routines in a manner so that said monitoring code instruction routines are executed in association with corresponding ones of said requests for services which occur in the first binary version,executing said instrumented binary version of said application program including said monitoring code instruction routines;
comparing calls made while said instrumented binary version of said application program is being executed, against said rules; and
using results of said step of comparing as a basis for verifying said conformance or non-conformance.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for verifying the conformance of an application program to a set of system rules characterized by the development of a conformance database, the performance of a static analysis of the application program to determine whether the application program is in static conformance with the conformance database and the performance of a dynamic analysis of the application program to determine whether the application program is in dynamic conformance with the conformance database. The static analysis produces a graph of the basic blocks of the application program and analyzes the graph for conformance to system rules, dead code and coverage metrics. The dynamic analysis adds a small amount of monitoring code into an executable application program which monitors the application program as it is exercised in a test harness. The monitoring code produces a log database which can be analyzed for run-time non-conformities of the application program.
-
Citations
11 Claims
-
1. A computer implemented method of verifying conformance or non-conformance of an application program to rules that define services which an operating system will provide, without requiring reference to a source code version of said application program, comprising the steps of,:
-
from a first binary version of said application program, forming an instrumented binary version of said application program, by inserting monitoring code instruction routines corresponding respectively to different types of requests for service, and by processing said first binary version by locating and identifying requests for services in said first binary version and redirecting each said request for service to a corresponding one of said monitoring code instruction routines in a manner so that said monitoring code instruction routines are executed in association with corresponding ones of said requests for services which occur in the first binary version, executing said instrumented binary version of said application program including said monitoring code instruction routines; comparing calls made while said instrumented binary version of said application program is being executed, against said rules; and using results of said step of comparing as a basis for verifying said conformance or non-conformance. - View Dependent Claims (2, 4, 5, 6)
-
-
3. A computer implemented method for analyzing execution of an application program without requiring reference to a source code version of said application program, comprising the steps of:
-
from a first binary version of said application program, forming an instrumented binary version of said application program, by inserting monitoring code instruction routines corresponding respectively to different types of requests for service, and by processing said first binary version by locating and identifying requests for services in said first binary version and redirecting each said request for service to a corresponding one of said monitoring code instruction routines in a manner so that said monitoring code instruction routines are executed in association with corresponding ones of said requests for services which occur in the first binary version, executing said instrumented binary vision program including said monitoring code instruction routines; deriving information from the execution of said monitoring code instruction routines; and analyzing the information. - View Dependent Claims (7)
-
-
8. A computer implemented method of verifying conformance or non-conformance of an application program to rules that define services which an operating system will provide, without requiring reference to a source code version of said application program, comprising the steps:
- of
storing computer data corresponding to the rules, from a first compiled executable version of said application program, forming an instrumented executable version of said application program, by inserting monitoring code instruction routines corresponding respectively to different types of requests for service, and by processing said first executable version by locating and identifying requests for services in said first executable version and redirecting each said request for service to a corresponding one of said monitoring code instruction routines in a manner so that said monitoring code instruction routines are executed in association with corresponding ones of said requests for said services which occur in said first executable version, analyzing information about occurrences, in said instrumented executable version of said application program, of requests for said services, based on execution of said monitoring code instruction routines, with reference to the rules, and providing an indication of conformance or non-conformance based on the results of the analyzing step. - View Dependent Claims (9, 10, 11)
- of
Specification