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

Method and apparatus for modifying relocatable object code files and monitoring programs

Assignee: International Business Machines Corp
•
Filing: 1996-05-31
•
Granted: 1998-11-10
•
Expires: 2016-05-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An object code expansion program inserts new instructions and data between preexisting instructions and data of an object code file; offsets are modified to reflect new positions of the preexisting instructions and data. For each item of preexisting object code (instructions or data), the following steps are performed: making a new code block comprising any desired new instructions and the item, and storing it as new object code; tracking the location of the item and the new code block within the new object code; and tracking items that contain inter-item offsets. Then, each inter-item offset is updated using the new location of the item or new code block, as required. Finally, offsets in symbol tables and relocation structures are updated with the new location of the item. This expansion program is used to add instructions to object code files of a second program, to monitor substantially all of the memory accesses of the second program. The added instructions establish and maintain a memory status array with entries for memory locations that are validly accessible by the second program; entries indicate the status of corresponding memory locations. The memory status array is used to check for the errors of writing to unallocated memory and reading from unallocated or uninitialized memory. Also, the data section of the object code files are expanded with extra dummy entries to aid in the detection of array bounds violations and similar data errors. Furthermore, watchpoints can be established for more comprehensive monitoring.

Inventors

  • 👤 Reed Hastings

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 23:34
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3636; G06F11/3624; G06F11/3644; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447; G06F8/54; G06F8/70; G06F8/71; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44521

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 187 words
A computer controlled method of equipping a first computer program with an interceptor function for being executed in place of an intercepted function, said first computer program having a plurality of object code files including a first object code file containing a definition of said intercepted function and a second object code file containing a first call for executing said intercepted function, said first object code file including a first structure identifying said intercepted function definition by an original intercepted function name, said method comprising: an act of modifying, under computer control, said first structure to identify said intercepted function definition by a modified intercepted function name, whereby a modified second object code file is produced; an act of providing a third object code file containing a definition of said interceptor function and a second structure identifying said interceptor function definition by said original intercepted function name; and an act of linking at least said modified first object code file, said second object code file and said third object code file to produce a modified computer program whereby a first call causes execution of said interceptor function.
Claim 2
Dependent Claim 187 words
A computer controlled method of equipping a first computer program with an interceptor function for being executed in place of an intercepted function, said first computer program having a plurality of object code files including a first object code file containing a definition of said intercepted function and a second object code file containing a first call for executing said intercepted function, said first object code file including a first structure identifying said intercepted function definition by an original intercepted function name, said method comprising: an act of modifying, under computer control, said first structure to identify said intercepted function definition by a modified intercepted function name, whereby a modified second object code file is produced; an act of providing a third object code file containing a definition of said interceptor function and a second structure identifying said interceptor function definition by said original intercepted function name; and an act of linking at least said modified first object code file, said second object code file and said third object code file to produce a modified computer program whereby a first call causes execution of said interceptor function.
Claim 3
Dependent Claim 76 words
The computer controlled method of equipping a computer program with an interceptor function for being executed in place of an intercepted function as recited in claim 1, further including an act of examining, under computer control, said plurality of object code files to identify said first object code file, and wherein said act of modifying said second object code file is responsive under computer control to said act of examining said plurality of object code files.
Claim 4
Dependent Claim 50 words
The computer controlled method of equipping a computer program with an interceptor function for being executed in place of an intercepted function as recited in claim 1, wherein said act of modifying said first structure comprises an act of transforming at least one character of said original intercepted function name.
Claim 5
Dependent Claim 52 words
The computer controlled method of equipping a computer program with an interceptor function for being executed in place of an intercepted function as recited in claim 3, wherein said act of modifying said first structure comprises an act of changing case of at least one character of said original intercepted function name.
Claim 6
Dependent Claim 74 words
The computer controlled method of equipping a computer program with an interceptor function for being executed in place of an intercepted function as recited in claim 1, wherein said act of providing a third object code file containing a definition of said interceptor function comprises providing a call from said interceptor to a function identified by said modified intercepted function name, whereby execution of said interceptor function results in execution of said intercepted function.
Claim 7
Dependent Claim 84 words
A computer implemented method of modifying a computer program to call an interceptor function in place of an intercepted function, said method comprising the steps of: receiving as input an object code file including a definition of a first function, said definition including a function name of said first function; and modifying said function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function.
Claim 8
Dependent Claim 84 words
A computer implemented method of modifying a computer program to call an interceptor function in place of an intercepted function, said method comprising the steps of: receiving as input an object code file including a definition of a first function, said definition including a function name of said first function; and modifying said function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function.
Claim 9
Dependent Claim 29 words
The method of claim 6, wherein said modifying step includes the step of modifying a case of at least one character of said function name of said first function.
Claim 10
Dependent Claim 15 words
The method of claim 6, wherein said interceptor function calls said first function during execution.
Claim 11
Dependent Claim 89 words
A computer implemented method of modifying a computer program to call an interceptor function in place of an intercepted function, said method comprising the steps of: receiving as input machine instructions specific to a computer processor including a definition of a first function, each machine instruction corresponding to an instruction executable by said computer processor; and modifying a function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function.
Claim 12
Dependent Claim 89 words
A computer implemented method of modifying a computer program to call an interceptor function in place of an intercepted function, said method comprising the steps of: receiving as input machine instructions specific to a computer processor including a definition of a first function, each machine instruction corresponding to an instruction executable by said computer processor; and modifying a function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function.
Claim 13
Dependent Claim 32 words
The method of claim 9, wherein said modifying step includes the step of modifying a case of at least one character of said function name of said first function within said definition.
Claim 14
Dependent Claim 15 words
The method of claim 9, wherein said interceptor function calls said first function during execution.
Claim 15
Dependent Claim 15 words
The method of claim 9, wherein said machine instructions are within an object code file.
Claim 16
Dependent Claim 97 words
A computer program product for modifying a computer program to call an interceptor function in place of an intercepted function, comprising the steps of: computer code that receives as input an object code file including a definition of a first function, said definition including a function name of said first function; computer code that modifies said function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function; and a computer readable medium that stores the computer codes.
Claim 17
Dependent Claim 97 words
A computer program product for modifying a computer program to call an interceptor function in place of an intercepted function, comprising the steps of: computer code that receives as input an object code file including a definition of a first function, said definition including a function name of said first function; computer code that modifies said function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function; and a computer readable medium that stores the computer codes.
Claim 18
Dependent Claim 33 words
The computer program product of claim 13, wherein said computer code that modifies includes computer code that modifies a case of at least one character of said function name of said first function.
Claim 19
Dependent Claim 17 words
The computer program product of claim 13, wherein said interceptor function calls said first function during execution.
Claim 20
Dependent Claim 16 words
The computer program product of claim 13, wherein said computer readable medium is a computer memory.
Claim 21
Dependent Claim 100 words
A computer program product for modifying a computer program to call an interceptor function in place of an intercepted function, comprising: computer code that receives as input machine instructions specific to a computer processor including a definition of a first function, each machine instruction corresponding to an instruction executable by said computer processor; and computer code that modifies a function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function; and a computer readable medium that stores the computer codes.
Claim 22
Dependent Claim 100 words
A computer program product for modifying a computer program to call an interceptor function in place of an intercepted function, comprising: computer code that receives as input machine instructions specific to a computer processor including a definition of a first function, each machine instruction corresponding to an instruction executable by said computer processor; and computer code that modifies a function name of said first function within said definition to be a function name of an interceptor function, wherein said interceptor function will be called in place of said first function; and a computer readable medium that stores the computer codes.
Claim 23
Dependent Claim 36 words
The computer program product of claim 17, wherein said computer code that modifies includes computer code that modifies a case of at least one character of said function name of said first function within said definition.
Claim 24
Dependent Claim 17 words
The computer program product of claim 17, wherein said interceptor function calls said first function during execution.
Claim 25
Dependent Claim 17 words
The computer program product of claim 17, wherein said machine instructions are within an object code file.
Claim 26
Dependent Claim 16 words
The computer program product of claim 17, wherein said computer readable medium is a computer memory.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag