×

Method and system for modifying executable code to add additional functionality

  • US 20030212983A1
  • Filed: 02/18/2003
  • Published: 11/13/2003
  • Est. Priority Date: 12/14/1998
  • Status: Active Grant
First Claim
Patent Images

1. A method for modifying an executable file including a plurality of compiled instructions, the compiled instructions natively executable on a target computer but not on a source computer, the modifying performed under control of the source computer without recompiling or relinking or rewriting the executable file, the method comprising:

  • under control of the source computer, (a) loading the executable file onto the target computer;

    (b) receiving a plurality of indications to modify the loaded executable file, each indication specifying one of the compiled instructions in the loaded executable file and at least one non-compiled executable instruction to be added to the loaded executable file;

    (c) modifying the loaded executable file by, for each indication, creating an instruction group including the specified at least one non-compiled executable instruction;

    converting the instruction group into an executable non-compiled format not specific to the target computer; and

    replacing the specified compiled instruction in the loaded executable file with an executable patch instruction associated with the converted instruction group, the patch instruction when executed to transfer flow of execution to the converted instruction group with which the patch instruction is associated; and

    (d) loading the converted instruction groups into at least one memory area on the target computer, the at least one memory area distinct from a memory area on the target computer containing the loaded executable file; and

    under control of the target computer, executing the modified loaded executable file by, as the flow of execution sequentially reaches each executable instruction, (e) when the executable instruction is a non-compiled executable instruction from an instruction group, interpretively evaluating the executable instruction;

    (f) when the executable instruction is a patch instruction, transferring flow of execution to the loaded associated converted instruction group; and

    (g) when the executable instruction is a compiled instruction, natively executing the compiled executable instruction, so that additional functionality is exhibited when the modified loaded executable file is executed on the target computer.

View all claims
  • 15 Assignments
Timeline View
Assignment View
    ×
    ×