Browse Prior Art Database

A Method for Self-Applying and Resolving Multiple Patches to an Executable Program Using Firmware- and Hardware-Specific Information

IP.com Disclosure Number: IPCOM000021176D
Original Publication Date: 2003-Dec-31
Included in the Prior Art Database: 2003-Dec-31
Document File: 2 page(s) / 64K

Publishing Venue

IBM

Abstract

The patching method proposed here allows for an executable to have one or more patches applied. Each patch has a header that identifies the firmware and/or hardware for which the patch is valid. Each patch would also have firmware- and hardware-specific code and/or data that the executable could use. When the patched executable is run, it would examine its list of patches and use the information in each patch conditionally, based on the patch header identification information. This is advantageous since multiple different types of firmware and hardware can be supported by one executable. I.e. since each patch is conditionally used, the domain of firmware and hardware supported by the executable is greater than what is supported by any one patch.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 64% of the total text.

Page 1 of 2

A Method for Self-Applying and Resolving Multiple Patches to an Executable Program Using Firmware- and Hardware-Specific Information

     Patches are self-applied to the executable. A command-line parameter tells the executable to take a patch file as input and apply the patch to the executable. Another command-line parameter is used to remove a particular patch from the executable. This is illustrated in Figure 1.

     Figure 1 - adding and removing patches In order to traverse the list of patches, the executable must have a method of finding the start of that list. An implementation of this would be to have a Patch Footer at the end of the executable. The traversal code would look size of (Patch Footer) bytes before the end of the executable to find the Patch Footer (keyed by FSIG). Inside that Patch Footer is a pointer to the end of the original executable (before it was patched), which is also the same location as the start of the list of patches. If the Patch Footer doesn't exist, the pointer to the end of the original executable is 0, or the pointer to the end of the original executable is the start of the patch footer, it can be assumed that there are no patches applied to the executable. Figure 2 illustrates this.

     Figure 2 - executable with no patches applied If the pointer to the end of the original executable is valid, the patch list can be traversed (keyed by PSIG).

1

[This page contains 4 pictures or other non-text objects]

Page 2 of 2

     Figure 3 - n patches appl...