Readbook v1.4破解實戰(天意II+W32dasm破解並用crackcode2000來寫序號產生器) (3千字)

看雪資料發表於2000-09-09

Readbook v1.4破解實戰(天意II+W32dasm破解並用crackcode2000來寫序號產生器)

本文作者:wind[CCG]
作者主頁:http://biggow.8u8.com

1、這裡仍然要應用w32dasm來輔助分析,然後用天意II,來下斷點!就算用trw2000
  或者是soft-ice下bpx hmemcpy或其他斷點,也未必會找到比較核心!這裡我們可
  以解用w32dasm來分析!

2、這個程式沒有加殼,所以,直接使用w32dasm來反彙編程式,將它儲存成文字!
  不要退出,我們可以string data ref,這裡我們找到了"您已經成功地註冊了!"
  然後,來到如下程式段:
  :0040A13D 6864384600              push 00463864
  :0040A142 8BCE                    mov ecx, esi
  :0040A144 E8C4F20200              call 0043940D
  :0040A149 EB38                    jmp 0040A183
-->這裡沒有我們需要的東西,往上找,來到:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409F9C(C)
|
:0040A00B 8D8544FFFFFF            lea eax, dword ptr [ebp+FFFFFF44]
:0040A011 50                      push eax
:0040A012 E8AF960200              call 004336C6
:0040A017 8B854CFFFFFF            mov eax, dword ptr [ebp+FFFFFF4C]
:0040A01D 8B8D48FFFFFF            mov ecx, dword ptr [ebp+FFFFFF48]
:0040A023 8BB544FFFFFF            mov esi, dword ptr [ebp+FFFFFF44]
:0040A029 03C8                    add ecx, eax
:0040A02B 038D50FFFFFF            add ecx, dword ptr [ebp+FFFFFF50]
:0040A031 69F631750000            imul esi, 00007531
:0040A037 69C931750000            imul ecx, 00007531 
-->這個片段就是計算註冊碼的部分了!我們就用天意II在40a00b下斷點!看看!
:(1)先啟動Readbook v1.4,來到輸入註冊碼的地方,輸入資訊!
    Name:wind[CCG]
    Code:8989898989
  (2)然後alt+z撥出天意II,下bpx 40a00b! 用g命令返回到readbook
  (3)按"填寫完畢"按鈕,來到天意II除錯環境!
  (4)來到push eax,就可以知道eax裡是我們輸入的名字,那麼下面那個call是檢查你輸入的Name是否符合
    要求!
-->OK,我們在往下看一些程式片段!

我們來到這裡:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040A0FD(C)
|
:0040A0E2 3975FC                  cmp dword ptr [ebp-04], esi
:0040A0E5 741D                    je 0040A104
:0040A0E7 8B55EC                  mov edx, dword ptr [ebp-14]
:0040A0EA 8BC8                    mov ecx, eax
:0040A0EC 83E17F                  and ecx, 0000007F
:0040A0EF 03348A                  add esi, dword ptr [edx+4*ecx]
:0040A0F2 40                      inc eax -->在這裡,看esi暫存器的值,就是註冊碼的16進位制形式!
:0040A0F3 3DFF0F0000              cmp eax, 00000FFF
:0040A0F8 A3B8544600              mov dword ptr [004654B8], eax
:0040A0FD 72E3                    jb 0040A0E2
:0040A0FF 3975FC                  cmp dword ptr [ebp-04], esi
:0040A102 7547                    jne 0040A14B

-->這一端就是比對註冊碼的地方,我們同樣可以使用天意II來下斷點獲得我們的註冊碼,這個程式在這裡
  可以生成很多註冊碼,所以,我們就開始捕捉行動!
:(1)在40a0e2處下斷點,bpx 40a0e2!
  (2)從天意II的除錯環境中,可以發現這段程式會生成很多個註冊碼,太多了!
  我們只要其中一個!就可以了!
  (3)我們用crackcode2000來製作一個序號產生器就可以給任何想要自己註冊碼朋友使用了!
我的註冊碼:
Name:wind[CCG]
Code:634315452

附上crackcode2000配置檔案:
[Options]
CommandLine=readbook.exe
Mode=1
First_Break_Address=40A0F2
First_Break_Address_Code=40
First_Break_Address_Code_Lenth=1
Save_Code_Address=ESI
/*這是wind安全網斑竹製作的註冊器!http://biggow.8u8.com*/

相關文章