home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
d
/
drdtips.zip
/
1114.TXT
< prev
next >
Wrap
Text File
|
1992-04-13
|
6KB
|
142 lines
Document 1114
SID and DEBUG
04/13/92
BK
SID AND THE DEBUG PATCH
Often software manufacturers will have to make changes to their software
after it has been released to customers. Usually these are very small
changes to the instructions that make up the software, sometimes only
affecting 1 or 2 bytes out of the entire program. Since the changes are so
small, they can often be completed by the customer by following a patch
listing from the manufacturer. These patch listings depend on the use of
DEBUG. A typical patch listing will look something like this:
1) COPY BROKFILE.EXE BROKFILE.SAV
2) DEBUG BROKFILE.EXE
3) -S 100 L FFFF B2 01 7C 56 8B 1E
4) -E xxxx:yyyy 91 92 93 94 88 1F
5) -W
6) -Q
DR DOS 6.0 has a similar utility called SID. While the function of
the two applications is the same, the actual commands are a little
different. Below is the typical listing with the purpose of each step
explained and the SID equivalent described. The format in each step
explained here is:
DEBUG COMMAND LINE
GENERAL COMMENTS AND CLARIFICATION
EQUIVALENT SID COMMAND LINE
1) COPY BROKFILE.EXE BROKFILE.BAK
Just in case things do not go as planned, make a back-
up.
(same command)
2) DEBUG BROKFILE.EXE
DEBUG is loading and reading the subject file into
memory. To accomplish this in SID, type SID at the
command line and then use the R command to read the
subject file into memory starting at memory offset
address 100. SID will display the starting and ending
address of the file in memory in a SEGMENT:OFFSET
format. Note these addresses.
SID
#RBROKFILE.EXE,100
3) -S 100 L FFFF B2 01 7C 56 8B 1E
DEBUG is searching from the offset address 100 to
the last address of FFFF (a hexadecimal number) for the
pattern of bytes listed (B2 01 7C 56 8B 1E B8). this is
a pattern that is unique to the area or areas of the
file that need to be changed. DEBUG will return the
addresses of the desired patterns in a SEGMENT:OFFSET
format like 2345:1DF5. The specific values returned
will vary. There may be more than one found. The patch
listing will usually refer to these values as
'xxxx:yyyy'.
The SID SR command is very similar. Some of the
arguments are separated with commas instead of spaces.
The address or addresses that contain the desired
pattern will be returned in the same xxxx:yyyy format.
Record the addresses returned.
#SR100,FFFF,B2 01 7c 56 8B 1E
4) -E xxxx:yyyy 91 92 93 94 88 1F
DEBUG is entering new values for the bytes in memory.
This is how the software is actually changed. The
xxxx:yyyy is the address at which the new values should
be added. The following numbers are the new values
themselves. In SID, use the S command and specify where
the new values should start.
SID will display that starting address and the
current value in memory and be waiting for the new
value. Enter the first value listed after xxxx:yyyy in
the -E command line of the patch listing. Press Enter.
SID will now show the next address and its current
value and be waiting for the new value. Enter the next
value in the -E command line. Continue entering the
remaining values. After the last value has been en-
tered, SID will display the next address and be waiting
for a new value. Simply enter a '.' and press ENTER.
SID will return to its '#' prompt.
#Sxxxx:yyyy
xxxx:yyyy B2 91
xxxx:yyyz 01 92
xxxx:yyya 7C 93
xxxx:yyyb 56 94
xxxx:yyyb 8B 88
xxxx:yyyb 1E 1F
xxxx:yyyb 22 .
#
5) -W
The update version of the software is written from
memory to the original file name. In SID use the
W command followed by the filename.
#WBROKFILE.EXE
6) -Q
You're done. Quit. SID's command is the same.
#Q
On the next page is a sample of what this patch process would
look like in SID.
[DR DOS] C:\MYFILES>SID
--------------------------------------------------
*** Symbolic Instruction Debugger *** Release 3.2
Copyright (c) 1983,1984,1985,1988,1990,1991
Digital Research, Inc. All Rights Reserved
--------------------------------------------------
#RBROKFILE.EXE,100
Start End
1056:0100 2056:7BF2
#SR100,FFFF,B2 01 7C 56 8B 1E
1056:2344
#S1056:2344
1056:2344 B2 91
1056:2345 01 92
1056:2346 7C 93
1056:2347 56 94
1056:2348 8B 88
1056:2349 1E 1F
1056:234A B8 .
#WBROKFILE.EXE
#Q
[DR DOS] C:\MYFILES>