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