← Back to Patent Explorer
US5313616A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines

Assignee: 88Open Consortium Ltd
•
Filing: 1990-09-18
•
Granted: 1994-05-17
•
Expires: 2010-09-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 David C. Cline
  • 👤 Andrew P. Silverman
  • 👤 Farrell W. Wymore

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 20:14
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 188 words
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.
Claim 2
Dependent Claim 188 words
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.
Claim 3
Dependent Claim 32 words
The method of claim 1 further the steps of: storing results of said step of comparing in a log database; and analyzing said log database for conformance or non-conformance to said rules.
Claim 4
Dependent Claim 152 words
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.
Claim 5
Dependent Claim 152 words
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.
Claim 6
Dependent Claim 28 words
The method of claim 1 or 3 wherein said monitoring code instruction routines monitor system calls made by said application program and generate information concerning said system calls.
Claim 7
Dependent Claim 28 words
The method of claim 1 or 3 wherein said monitoring code instruction routines monitor procedure calls made by said application program and generate information concerning said procedure calls.
Claim 8
Dependent Claim 28 words
The method of claim 1 or 3 further comprising the step of generating a list of calls and parameters in the order of call execution within said application.
Claim 9
Dependent Claim 25 words
The method of claim 3 wherein said monitoring code instruction routines monitor block usage of said application program and generate information concerning said block usage.
Claim 10
Dependent Claim 195 words
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.
Claim 11
Dependent Claim 195 words
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.
Claim 12
Dependent Claim 35 words
The method of claim 8 wherein said step of storing computer data corresponding to said rules includes: inputting said rules in a formal artificial language; and compiling said rules to create a machine-readable binary form.
Claim 13
Dependent Claim 33 words
The method of claim 8 wherein said analyzing step includes storing information received from the monitoring code instruction routines in a log; and analyzing said log for conformance or non-conformance to said rules.
Claim 14
Dependent Claim 20 words
The method of claim 8 wherein said compiled executable version comprises a binary code version or an object code version.

References Cited (Backward Citations)

US4533997A Cited
US4100532A Cited
US4692897A Cited
US4642765A Cited
US5047919A Cited
US4951195A Cited
US5204956A Cited
US5210862A Cited
US5212794A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-05-16 1997-11-15 1998-05-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-05-16 2001-11-15 2002-05-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-05-16 2005-11-15 2006-05-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag