Tmaster6.0 破解(我的第一篇灌水) (4千字)

看雪資料發表於2001-10-04

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中修改,即可得到正式版。

相關文章