W32dasm分析破解美萍網管大師v5.2以及用Crackcode2000製作序號產生器 (5千字)

看雪資料發表於2000-08-30

W32dasm分析破解美萍網管大師v5.2以及用Crackcode2000製作序號產生器

本文作者:wind[CCG]
我的網站:http://biggow.8u8.com(有空來看看)
China Cracking Group是中國自己的破解組織,有興趣可以和SunBird大哥聯絡!
他的E-mail:sun.bird@371.net


開篇:美萍安全衛士v5.2可以防trw2000和softice,而且極為兇悍,有些程式檢測到
這類跟蹤除錯軟體只不過是顯示一個nag然後終止程式執行,而美萍網管大師v5.2
(包括安全衛士的最新版本)發現此類程式,就關機,所以這次使用w32dasm超級
中文版來破解它!

1、scon.exe這個檔案是用aspack 1.07加的殼,直接使用unaspack就可以搞定了!

2、啟動W32dasm反彙編scon.exe,那麼我們從何入手呢,看看說明;哦,有時間
限制,還有那個註冊框上顯示的未註冊一句話作為入手!如果在W32dasm中,找
不到,那麼我們可以透過登錄檔,因為它透過閱讀登錄檔的資訊,然後判斷是否
註冊,很高興,我們找到了這麼一句話“軟體試用期還剩”,我們就從這裡入手!
雙擊它,然後來到如下程式段:

* Possible StringData Ref from Code Obj ->"軟體試用期還剩"
                                  |
:004846DA 6808494800              push 00484908
:004846DF 8D55DC                  lea edx, dword ptr [ebp-24]
:004846E2 A1F48D4800              mov eax, dword ptr [00488DF4]
:004846E7 40                      inc eax
:004846E8 2B0544DE4A00            sub eax, dword ptr [004ADE44]
:004846EE E8392EF8FF              call 0040752C
:004846F3 FF75DC                  push [ebp-24]
:004846F6 6820494800              push 00484920
/*當然這裡沒有我們需要的資訊,我們需要往上找*/
往上來到如下:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00484476(C)
|
:004846A3 E8EC55FEFF              call 00469C94 --->判斷什麼的?
:004846A8 85C0                    test eax, eax
:004846AA 7577                    jne 00484723 --->這個jnz有可疑!雙擊此處,讓游標來到此處!
:004846AC A1F48D4800              mov eax, dword ptr [00488DF4]
:004846B1 83E80F                  sub eax, 0000000F
:004846B4 3B0544DE4A00            cmp eax, dword ptr [004ADE44]
:004846BA 7D67                    jge 00484723
:004846BC 6A40                    push 00000040
:004846BE 8D45E8                  lea eax, dword ptr [ebp-18]
--讓游標停留在4846AA處,然後用jump to看它跳到哪裡去.....

* Possible StringData Ref from Code Obj ->",請趕快向作者註冊(0371-8982414)"
                                  |
:004846FB 682C494800              push 0048492C
:00484700 8D45E4                  lea eax, dword ptr [ebp-1C]
:00484703 BA04000000              mov edx, 00000004
:00484708 E88FF5F7FF              call 00403C9C
:0048470D 8B45E4                  mov eax, dword ptr [ebp-1C]
:00484710 E88BF6F7FF              call 00403DA0
:00484715 50                      push eax
:00484716 8BC3                    mov eax, ebx
:00484718 E82719FAFF              call 00426044
:0048471D 50                      push eax

* Reference To: user32.MessageBoxA, Ord:0000h
                                  |
:0048471E E8DD1BF8FF              Call 00406300 --->call出那個討厭對話方塊的地方!

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004846AA(C), :004846BA(C)
|
:00484723 B201                    mov dl, 01  --->4846AA的跳躍就是來到這裡的
                                                  到了這裡,也就是跳過了那個視窗!
:00484725 8B8314020000            mov eax, dword ptr [ebx+00000214]
:0048472B E85408FDFF              call 00454F84
/*那麼4846A3的那個call不是判斷時間就是判斷註冊碼的,我們進那個call看看*/

4846A3那個call的內容如下:

* Referenced by a CALL at Addresses:
|:0048305F  , :004846A3 
|
:00469C94 53                      push ebx
:00469C95 A13C8F4800              mov eax, dword ptr [00488F3C]
:00469C9A 8B00                    mov eax, dword ptr [eax]
:00469C9C E827A5FFFF              call 004641C8  --->計算註冊碼的call!寫序號產生器就要仔細看這個call
                                                    它的演算法不是很複雜!
:00469CA1 8BD8                    mov ebx, eax

* Possible StringData Ref from Code Obj ->"RegNum" -->看見了嗎,這個call就是判斷註冊碼的!
                                                      算出註冊碼也不能了吧!
                                               
                                  |:00469CA3 B8C49C4600              mov eax, 00469CC4
:00469CA8 E8B3A6FFFF              call 00464360
:00469CAD 3BD8                    cmp ebx, eax -->哈哈,我們可以用trw2000來下斷點!下斷點469C94
                                                  很快來到這裡,看ebx的值,把它轉成十進位制就是註冊碼
                                                 
:00469CAF 7507                    jne 00469CB8 -->這裡不跳就OK!改破解版,就改這裡好了把7507改成9090
:00469CB1 B801000000              mov eax, 00000001
:00469CB6 5B                      pop ebx
:00469CB7 C3                      ret



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00469CAF(C)
|
:00469CB8 33C0                    xor eax, eax -->不能來到這裡,讓他把eax清0就完了!
:00469CBA 5B                      pop ebx
:00469CBB C3                      ret

下面我們用Crackcode2000來製作序號產生器,因為今次的註冊碼不是直接用ASCII碼形式放在記憶體中的,
而是用數值的形式放在暫存器處的,所以這時就要用模式1了。下面是Crackcode.ini的資訊:
[Options]
CommandLine=scon.exe
Mode=1
First_Break_Address=469CAD
First_Break_Address_Code=3B
First_Break_Address_Code_Lenth=2
Save_Code_Address=EBX

我的序列號是183894,計算出的註冊碼是30806!crackcode2000序號產生器就寫好了!很簡單吧!
哈哈,這要感謝我們的Rufeng兄,寫了一個如此棒的程式!而且體積很小!

破解版製作:
1、用UnAspack解壓scon.exe檔案
2、查詢:E8  B3  A6  FF  FF  3B  D8  75  07 
  替換:--  --  --  --  --  --  --  90  90

今天就到這裡,休息.......休息!
                                                            wind
                                                      China Cracking Group
                                                            2000.8.30

相關文章