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

Static debugging tool and method

Assignee: Veracode Inc
•
Filing: 1996-08-08
•
Granted: 1998-12-29
•
Expires: 2016-08-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A static debugging tool for use with a computer and for debugging a binary program file includes an analyzer for causing the computer to statically analyze a representation of a binary program file to detect the presence of program errors and potential errors in the binary program file without executing the binary program file. The static debugging tool causes the computer to output an error list of the errors and potential errors detected by the analyzer. In a preferred embodiment, the analyzer detects the errors and potential errors in the representation of the binary program file by following all of the possible flow paths of the representation of the binary program file while tracking the use of various program parameters for any inconsistent use of the various program parameters. A method for statically debugging a binary program file is also described.

Inventors

  • 👤 David Rickel
  • 👤 James B. McBeath

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 22:35
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 119 words
A static debugging tool for use with a computer and for debugging a binary program file without requiring the execution of the binary program file in order to detect the presence of program errors and potential program errors, the static debugging tool comprising: an analyzer for causing die computer to statically analyze a representation of the binary program file to detect the presence of program errors or potential program errors in the representation of the binary program file without executing the binary program file, wherein the representation of the binary program file is an intermediate file; and an output arrangement for causing the computer to output an error list of the errors or potential errors detected by the analyzer.
Claim 2
Dependent Claim 119 words
A static debugging tool for use with a computer and for debugging a binary program file without requiring the execution of the binary program file in order to detect the presence of program errors and potential program errors, the static debugging tool comprising: an analyzer for causing die computer to statically analyze a representation of the binary program file to detect the presence of program errors or potential program errors in the representation of the binary program file without executing the binary program file, wherein the representation of the binary program file is an intermediate file; and an output arrangement for causing the computer to output an error list of the errors or potential errors detected by the analyzer.
Claim 3
Dependent Claim 56 words
A static debugging tool according to claim 1 further comprising a decompiler for causing the computer to decompile the binary program file and translate the binary program file into an intermediate, machine independent program file that serves as the representation of the binary program file to be analyzed by the analyzer of the static debugging tool.
Claim 4
Dependent Claim 32 words
A static debugging tool according to claim 2 further comprising a hint file for providing user information to the static debugging tool that is specific to the binary program file being decompiled.
Claim 5
Dependent Claim 43 words
A static debugging tool according to claim 1 further comprising a system call and restrictions library file for providing information to the static debugging tool which is specific to a particular system with which the binary program file is designed to be used.
Claim 6
Dependent Claim 34 words
A static debugging tool according to claim 1 wherein the static debugging tool includes a flow determining arrangement for determining and symbolically representing the function flow of the representation of the binary program file.
Claim 7
Dependent Claim 35 words
A static debugging tool according to claim 5 wherein the static debugging tool includes an arrangement for identifying when and how each function calls any other functions within the representation of the binary program file.
Claim 8
Dependent Claim 66 words
A static debugging tool according to claim 6 wherein the analyzer detects the errors and potential errors in the representation of the binary program file by following all of the possible flow paths of the representation of the binary program file while tracking the use of various program parameters for any inconsistent use of the various program parameters throughout the representation of the binary program file.
Claim 9
Dependent Claim 31 words
A static debugging tool according to claim 7 wherein the analyzer includes an arrangement for checking for the return of an automatic address within the representation of the binary program file.
Claim 10
Dependent Claim 32 words
A static debugging tool according to claim 7 wherein the analyzer includes an arrangement for checking for any inconsistent use of certain variable types within the representation of the binary program file.
Claim 11
Dependent Claim 36 words
A static debugging tool according to claim 6 wherein the analyzer symbolically executes a symbolic representation of the binary program file to detect the presence of program errors and potential errors in the binary program file.
Claim 12
Dependent Claim 37 words
A static debugging tool according to claim 10 wherein values of certain variables and the relationship between certain variables are symbolically tracked to detect the presence of program errors and potential errors in the binary program file.
Claim 13
Dependent Claim 28 words
A static debugging tool according to claim 1 wherein the analyzer uses binary decision diagrams to symbolically represent certain operations of certain functions of the binary program file.
Claim 14
Independent Claim 117 words
A method of detecting program errors or potential program errors in a binary program file, the method comprising the steps of: statically analyzing representation of the binary program file to detect program errors and potential program errors without executing the binary program file by searching through the binary program file while tracking the use of various program parameters for any inconsistent use of the various program parameters throughout the binary program file, wherein the representation of the binary program includes an intermediate file that represents the binary program file and includes flow paths and flow structure associated with the binary program; and outputting an error list of the errors or potential errors detected during the analyzing step.
Claim 15
Independent Claim 117 words
A method of detecting program errors or potential program errors in a binary program file, the method comprising the steps of: statically analyzing representation of the binary program file to detect program errors and potential program errors without executing the binary program file by searching through the binary program file while tracking the use of various program parameters for any inconsistent use of the various program parameters throughout the binary program file, wherein the representation of the binary program includes an intermediate file that represents the binary program file and includes flow paths and flow structure associated with the binary program; and outputting an error list of the errors or potential errors detected during the analyzing step.
Claim 16
Dependent Claim 95 words
A method according to claim 13 wherein the binary program file includes a plurality of functions having a particular function flow structure which is intended to control the flow of the program during the execution of the program and wherein the step of analyzing the representation of the binary program file includes the step of searching through the representation of the binary program file following multiple flow paths of the function flow structure while tracking the use of various program parameters for any inconsistent use of the various program parameters throughout the binary program file.
Claim 17
Dependent Claim 30 words
A method according to claim 13 further comprising the step of decompiling the binary program file to create a machine independent, intermediate file to be analyzed in the analyzing step.
Claim 18
Dependent Claim 43 words
A method according to claim 15 wherein the step of decompiling the binary program file and creating an intermediate file representing the binary program file includes the step of using binary decision diagrams to symbolically represent certain arguments of the binary program file.
Claim 19
Dependent Claim 80 words
A computer readable medium having program instructions for: causing a computer to statically analyze a representation of a binary program file that takes the form of an intermediate program file that includes flow paths and flow structure associated with the binary program, to detect the presence of program errors or potential program errors in the binary program file without executing the binary program file; and causing the computer to output an error list of the errors or potential errors detected.
Claim 20
Dependent Claim 80 words
A computer readable medium having program instructions for: causing a computer to statically analyze a representation of a binary program file that takes the form of an intermediate program file that includes flow paths and flow structure associated with the binary program, to detect the presence of program errors or potential program errors in the binary program file without executing the binary program file; and causing the computer to output an error list of the errors or potential errors detected.
Claim 21
Dependent Claim 49 words
A computer readable medium according to claim 17 further including instructions for causing the computer to decompile the binary program, file and translate the binary program file into an intermediate, machine independent program file that constitutes the representation of the binary program to be analyzed by the analyzing instructions.
Claim 22
Dependent Claim 24 words
A computer readable medium according to claim 18 further including instructions for determining and symbolically representing the function flow of the binary program file.
Claim 23
Dependent Claim 29 words
A computer readable medium according to claim 19 further including instructions for identifying the calls within the binary program file and symbolically representing the structural relationships of the calls.
Claim 24
Dependent Claim 49 words
A computer readable medium according to claim 20 wherein the analyzing instructions include instructions for following all of the possible flow paths of the binary program file while tracking the use of various program parameters for any inconsistent use of the various program parameters throughout the binary program file.
Claim 25
Dependent Claim 40 words
A computer readable medium according to claim 19 wherein the analyzing instructions include instructions for symbolically executing a symbolic representation of the binary program file to detect the presence of program errors and potential errors in the binary program file.
Claim 26
Dependent Claim 42 words
A static debugging tool according to claim 22 wherein the analyzing instructions include instructions for symbolically tracking values of certain variables and the relationship between certain variables to detect the presence of program errors and potential errors in the binary program file.
Claim 27
Dependent Claim 32 words
A computer readable medium according to claim 17 wherein the analyzing instructions include instructions for using binary decision diagrams to symbolically represent certain operations of certain functions of the binary program file.

References Cited (Backward Citations)

US5119377A Cited
US5465258A Cited
US5132972A Cited
US5673390A Cited
US5586328A Cited
US5699507A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-12-28 2002-06-29 2002-12-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-12-28 2006-06-29 2006-12-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-12-28 2010-06-29 2010-12-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag