92 lines
2.1 KiB
Plaintext
92 lines
2.1 KiB
Plaintext
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TSRCrack V3.00 Copyright (c) 1994
|
|
by Wong Wing Kin
|
|
All rights reserved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
What is TSRCRACK?
|
|
|
|
This is a TSR utility for cracking software protection such as
|
|
password protection. It can also be used to modify the games so that
|
|
they can be much easier finished.
|
|
Why not modify the file directly? It is because the files are
|
|
often compressed and encoded, they cannot be decoded and modified.
|
|
Thus you need a TSR to modify the codes after the files are loaded
|
|
into memory.
|
|
This program can generate a TSR from given information about
|
|
where and how to modify the codes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Input File format:
|
|
|
|
[program <startup program name> ]
|
|
int <which interrupt to hook>
|
|
<conditions>?
|
|
|
|
<conditions> :- if <segreg>:<seg offset>:<offset>:<codes>
|
|
(then <segreg>:<seg offset>:<offset>:<codes>)?
|
|
|
|
<segreg> :- ds | es | cs | ss
|
|
<seg offset> :- signed/unsigned hex numbers (word)
|
|
<offset> :- unsigned hex numbers (word)
|
|
<codes> :- space separated hex numbers (byte)
|
|
|
|
? means 1 or more occurrences.
|
|
[] mean optional.
|
|
|
|
|
|
Example: Crack INDARK password
|
|
|
|
program tatou.com
|
|
int 21
|
|
if cs:0000:25bc = 3b 86 d0 fd 75 28 a0 8e
|
|
then cs:0000:25c0 = eb 1a
|
|
|
|
The above program will hook int 21. Every time int 21 is called,
|
|
it will check the byte sequence at the address CS+0000:25bc
|
|
equal to 3b 86 d0 fd 75 28 a0 8e or not. If it is equal,
|
|
change CS+0000:25c0 to eb 1a.
|
|
|
|
|
|
Example: The following program can also be acceptable
|
|
|
|
Program tatou.com
|
|
int 21
|
|
|
|
if Cs:0000:25bc = 3b 86 d0 fd 75 28 a0 8e
|
|
then cs+0:+25c0 = eb 1a
|
|
|
|
if cs-cd6:1f46 = 8b 56 e6 d1 e2 c4 1e 8e 7d 03
|
|
then cs:-cd6:1f46 = 83 7e e6 15 74 8 f7 d8 eb d2
|
|
|
|
if cs:-cd6:1f04 = 26 ff 0f
|
|
then cs:-cd6:1f04 = eb 01
|