Object code logic analysis and automated modification system and method
First Claim
1. A method for automatically modifying computer program logic with respect to a selected data type, comprising the steps of:
- (a) analyzing object code representing computer program logic from the computer program to identify references to the selected data type, substantially without reference to or reconstruction of source code, wherein the object code representing computer program logic is analyzed by one or more processes selected from the group consisting of;
disassembly, further comprising the step of applying inferential analysis and state dependent analysis to the disassembled object code representing computer program logic,scanning data files referenced by the object code representing computer program logic to locate data formatted as date data, andtracing presumed references to the selected data type through a logical flow of the computer program logic;
(b) modifying the computer program logic with respect to the selected data type to alter computer program logical execution with respect thereto; and
(c) storing information representing the modified computer program logic for execution.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system for modifying computer program logic with respect to a predetermined aspect, comprising (a) before run time: analyzing compiled computer program logic of a module for processes involving the predetermined aspect before run time, substantially without decompilation or reference to computer program source code; and storing a set of modifications relating to computer program logic modifications of the module relating to the predetermined aspect; and (b) at run time: based on the stored set of modifications, selectively transferring program control from the module to a separate logical structure, executing modified logical operations with respect to the predetermined aspect, and subsequently returning program control to the module. The predetermined aspect may be, for example, a data type, algorithm type, or interface specification. In a preferred embodiment, the predetermined aspect is date related data, and more particularly, to logical operations relating to date related data which are flawed. The system preferably operates in a mainframe environment, wherein the compiled computer program constitutes one or more load modules, executing under an operating system, wherein the computer program logic modifications preferably comprise program flow control diversions in an original object module, which selectively transfer logical control to a separate object module to effect modifications to the computer program logic, followed by a return of control to the original object module.
-
Citations
31 Claims
-
1. A method for automatically modifying computer program logic with respect to a selected data type, comprising the steps of:
-
(a) analyzing object code representing computer program logic from the computer program to identify references to the selected data type, substantially without reference to or reconstruction of source code, wherein the object code representing computer program logic is analyzed by one or more processes selected from the group consisting of; disassembly, further comprising the step of applying inferential analysis and state dependent analysis to the disassembled object code representing computer program logic, scanning data files referenced by the object code representing computer program logic to locate data formatted as date data, and tracing presumed references to the selected data type through a logical flow of the computer program logic; (b) modifying the computer program logic with respect to the selected data type to alter computer program logical execution with respect thereto; and (c) storing information representing the modified computer program logic for execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for automatically modifying computer program logic organized as one or more object code modules, comprising the steps of:
-
(a) analyzing object code logic to identify instances of a desired change, wherein the object code logic is analyzed by one or more processes, selected from the group consisting of; applying inferential analysis and state dependent analysis to disassembled object code, scanning data files referenced by the object code to locate data formatted as date data, and tracing presumed references to the selected data type through a logical flow of the object code; (b) modifying the object code embodied in the computer program logic with respect to the desired change to modify computer program logical execution, substantially without decompilation or reference to source code; and (c) storing information representing the modified computer program logic for execution.
-
-
23. A method for modifying computer program behavior resolve an ambiguity, comprising:
-
(a) identifying an ambiguous reference in a computer program; (b) analyzing the ambiguous reference to determine a likely resolution, wherein the ambiguous reference is analyzed by one or more processes selected from the group consisting of; applying inferential analysis and state dependent analysis to the computer program, scanning data files referenced by the computer program to locate data formatted as date data, and tracing presumed references to the selected data type through a logical flow of the computer program; (c) defining an alteration to the computer program execution to implement the determined likely resolution; and (d) applying the alteration such that the determined likely resolution is executed during normal execution of the computer program. - View Dependent Claims (24, 25, 26)
-
-
27. A method for automatically modifying computer program logic, comprising the steps of:
-
(a) analyzing object code logic of the computer program by applying inferential analysis and state dependent analysis to the object code logic to define instances of a desired change; (b) modifying the object code in line to effect the desired change in object code logic, substantially without decompilation or reference to source code; and (c) storing information representing the modified computer program logic for execution. - View Dependent Claims (28, 29)
-
-
30. A medium for storing a program executable on a computer for automatically modifying object code of another computer program, comprising logical instructions for:
-
(a) analyzing object code logic of the other computer program by performing an analysis selected from one or more of the group consisting of; applying inferential analysis and state dependent analysis to the object code logic to define instances of a desired change, scanning data files referenced by the object code to locate data formatted as date data, and tracing presumed references to a selected data type through a logical flow of the object code; (b) modifying the object code to effect the desired change in object code logic, substantially without decompilation or reference to source code; and (c) storing information representing the modified object code for execution.
-
-
31. A computer system for automatically modifying object code of a computer program, comprising:
-
(a) means for analyzing object code logic of the other computer program by performing an analysis selected from one or more of the group consisting of; applying inferential analysis and state dependent analysis to the object code logic to define instances of a desired change, scanning data files referenced by the object code to locate data formatted as date data, and tracing presumed references to a selected data type through a logical flow of the object code; (b) means for modifying the object code to effect the desired change in object code logic, substantially without decompilation or reference to source code; and (c) means for storing information representing the modified object code for execution.
-
Specification