Tmaster6.0 是一个指法练习软件,在http://software.wx88.net/down/typm2002.exe可以下栽。或到http://www.typingmaster.com/其公司主页
下栽。目前这个试用DEMO版本要授权文件,可以变成正式版。
DEMO版只能用到第四课。
工具:Trw2001.22
Uledit 7.0
wdasm
进入程序后,直接学习第四课弹出对话框,告诉你是DEMO版,不能用,请购买之类的
好,切入TRW,下断点
BPX MESSAGEBOXA
返回程序,要求学习第五课,程序被中断,
* Reference To: user32.MessageBoxA, Ord:0000h
|
:0044B6B6 E821B7FBFF Call 00406DDC
<==在此处中断调用MessageBoxA
:0044B6BB 8945F8
mov dword ptr [ebp-08], eax
:0044B6BE 33C0
xor eax, eax
:0044B6C0 5A
pop edx
:0044B6C1 59
pop ecx
一直按F10直到TMASTER窗口再次显示,再点第五课的练习,回到TRW2000的界面如下:
:004B82AA FF5218
call [edx+18] <==控制命令传送给WINDOWS
:004B82AD 8BF8
mov edi, eax
:004B82AF 8B8630010000 mov eax, dword
ptr [esi+00000130]
:004B82B5 8945F8
mov dword ptr [ebp-08], eax
:004B82B8 8BC6
mov eax, esi
:004B82BA E861ADF4FF call 00403020
:004B82BF 837DF800 cmp
dword ptr [ebp-08], 00000000
:004B82C3 7507
jne 004B82CC
:004B82C5 BF03000000 mov edi,
00000003
:004B82CA EB0F
jmp 004B82DB
一直按F10到这里:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B8368(C)
|
:004B8373 A140BC4D00 mov eax,
dword ptr [004DBC40]
:004B8378 8B00
mov eax, dword ptr [eax]
:004B837A 83780C00 cmp
dword ptr [eax+0C], 00000000 此处比较,当eax+0c地址处为0表示为试用版
:004B837E 750B
jne 004B838B <==跳到正确的地址。
:004B8380 8BC3
mov eax, ebx
:004B8382 E855FCFFFF call 004B7FDC
<==显示为试用版信息。
:004B8387 8BF8
mov edi, eax
:004B8389 EB0C
jmp 004B8397
在:004B837A行可以看到[eax+0C]的地址为00d56d84, 即在内存00d56d84处放的是是否试用版标志。
下断点BPM 00D56D84 RW
重新运行Tmaster6.0 ,程序被拦住
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402FC0(U)
|
:0040302C 53
push ebx
:0040302D 56
push esi
:0040302E 57
push edi
:0040302F 89C3
mov ebx, eax
:00403031 89D7
mov edi, edx
:00403033 AB
stosd
:00403034 8B4BD8
mov ecx, dword ptr [ebx-28]
:00403037 31C0
xor eax, eax
:00403039 51
push ecx
:0040303A C1E902
shr ecx, 02
:0040303D 49
dec ecx
:0040303E F3
repz
:0040303F AB
stosd 光标停在此处,此时将EAX改为1,发现变成正式版
:00403040 59
pop ecx
:00403041 83E103
and ecx, 00000003
这是调用DLL文件的,该模块要调用很多次,不能在这里改,否则程序将出错。
绝续按CTRL-N,回到Tmaster6.0,出现用户登陆,点OK后程序又被拦住住。
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D45DF(C)
|
:004D4660 A140BC4D00 mov eax,
dword ptr [004DBC40]
:004D4665 8B00
mov eax, dword ptr [eax]
:004D4667 83780C00 cmp
dword ptr [eax+0C], 00000000 <==此处判断,当eax+0c地址处为0表示为试用版
:004D466B 7E16
jle 004D4683
:004D466D A100BC4D00 mov eax,
dword ptr [004DBC00]
:004D4672 8B00
mov eax, dword ptr [eax]
:004D4674 57
push edi
:004D4675 8DB810020000 lea edi, dword
ptr [eax+00000210]
:004D467B BE8C4C4D00 mov esi,
004D4C8C
:004D4680 A5
movsd
:004D4681 A4
movsb
:004D4682 5F
pop edi
这是程序初始化,若[eax+0C]不为零,将不出现DEMO版字样。
为了将当eax+0c地址处改为0,将上面的部分代码改为如下
改为:
0167:004D4667 57 PUSH
EDI
0167:004D4668 040C ADD
AL,0C
0167:004D466A 89C7 MOV
EDI,EAX
0167:004D466C B001 MOV
AL,01
0167:004D466E AA STOSB
<==把[eax+0C]地址处的值改为01,表示正式版
0167:004D466F 89F8 MOV
EAX,EDI
0167:004D4671 5F POP
EDI
0167:004D4672 90 NOP
<==多的地方用空填补
0167:004D4673 90 NOP
<==多的地方用空填补
0167:004D4674 57 push edi
0167:004D4675 8DB810020000 lea edi, dword ptr [eax+00000210]
将上面的机器玛抄下,在ULEDIT中修改,即可得到正式版。
- 标 题:Tmaster6.0 破解(我的第一篇灌水) (4千字)
- 作 者:六根山人
- 时 间:2001-10-4 19:14:10
- 链 接:http://bbs.pediy.com