班門弄斧之GoldView32 2.0 Build168演算法分析 (8千字)
GoldView32 2.0 build 168破解過程
【軟體簡介】是一個對檔案的所在結構進行瀏覽的軟體。就是能顯示檔案有關結
構和物件的相關資訊,是一種只能顯示不能修改的工具,對於不想 查詢資料詞典而想知道有關資訊的人非常有用,能讓人們安全瀏覽
檔案。
【下載地址】http://newhua.infosail.com/Goldview.htm
【破解工具】Language2000、DeDe 3.0、Ollydbg 1.4
【文章作者】eCool[BCG][FCG][CNCG]
【出版時間】2002年1月24日
【鄭重宣告】轉載請保持文章完整,謝謝。
很久沒有搞破解了有點手癢,所以立馬去華軍一趟,隨便選了個軟體下載,結果就搞到了這個東東,安裝完成後,執行,註冊,原來是單Serial型的註冊,看來有點困難,隨便輸入一個註冊碼,點Ok,出來一個錯誤對話方塊,呵呵,有戲看了。退出程式,立即用Language2000分析一下GoldView.exe,不錯沒有加殼,而且是DeDe的,so,用Dede分析一下,很快在Nag
Unit中找到個RegisterButtonClick,進入這個事件,來到這裡:
* Reference to field TNagDlg.OFFS_0314
|
004E0626 8B9314030000 mov
edx, [ebx+$0314]
004E062C 8D45FC
lea eax, [ebp-$04]
|
004E062F E8B445F2FF call
00404BE8
004E0634 8B45FC
mov eax, [ebp-$04]
|
004E0637 E894F8FFFF call
004DFED0
004E063C 84C0
test al, al==》經典的比較啊,因此在4E0637處下斷。
004E063E 743C
jz 004E067C
004E0640 8D55F4
lea edx, [ebp-$0C]
好的,馬上執行Ollydbg,載入,執行,輸入假註冊碼AB1234,然後在4E0637下斷,點OK按鈕,馬上背攔下,按F7跟入。
004DFED0 55
push ebp
004DFED1 8BEC
mov ebp, esp
004DFED3 33C9
xor ecx, ecx
004DFED5 51
push ecx
004DFED6 51
push ecx
004DFED7 51
push ecx
004DFED8 51
push ecx
004DFED9 51
push ecx
004DFEDA 51
push ecx
004DFEDB 53
push ebx
004DFEDC 56
push esi
004DFEDD 8945FC
mov [ebp-$04], eax
004DFEE0 8B45FC
mov eax, [ebp-$04]
|
004DFEE3 E89C4EF2FF call
00404D84
004DFEE8 33C0
xor eax, eax
004DFEEA 55
push ebp
* Possible String Reference to: 'B?脬E^[]@'
|
004DFEEB 68F5FF4D00 push
$004DFFF5
***** TRY
|
004DFEF0 64FF30
push dword ptr fs:[eax]
004DFEF3 648920
mov fs:[eax], esp
004DFEF6 C645FB00 mov
byte ptr [ebp-$05], $00
004DFEFA 8D55EC
lea edx, [ebp-$14]
004DFEFD 8B45FC
mov eax, [ebp-$04]
|
004DFF00 E8DB8EF2FF call
00408DE0==》取字串"Goldview32"
004DFF05 8B55EC
mov edx, [ebp-$14]
004DFF08 8D45FC
lea eax, [ebp-$04]
|
004DFF0B E86C4AF2FF call
0040497C==》將"Goldview32"加上我們的註冊碼
004DFF10 8D45F0
lea eax, [ebp-$10]所以變成"Goldview32AB1234"
|
004DFF13 E8CC49F2FF call
004048E4==》轉換成大寫
004DFF18 8B45FC
mov eax, [ebp-$04]"GOLDVIEW32AB1234"
|
004DFF1B E87C4CF2FF call
00404B9C
004DFF20 8BD8
mov ebx, eax
004DFF22 EB01
jmp 004DFF25
004DFF24 4B
dec ebx
004DFF25 8B45FC
mov eax, [ebp-$04] -+
004DFF28 8A4418FF mov
al, byte ptr [eax+ebx-$01] |這段程式碼的作用是
004DFF2C 04D0
add al, -$30
|判斷輸入的註冊碼的
004DFF2E 2C0A
sub al, $0A
|最後幾位是不是數字。
004DFF30 7304
jnb 004DFF36
|(最起碼最後一位必須
004DFF32 85DB
test ebx, ebx
|是數字)
004DFF34 7FEE
jnle 004DFF24
-+
004DFF36 8D45F0
lea eax, [ebp-$10]
004DFF39 50
push eax
004DFF3A 8B45FC
mov eax, [ebp-$04]
|
004DFF3D E85A4CF2FF call
00404B9C
004DFF42 8BC8
mov ecx, eax
004DFF44 2BCB
sub ecx, ebx
004DFF46 8D5301
lea edx, [ebx+$01]
004DFF49 8B45FC
mov eax, [ebp-$04]
|
004DFF4C E8A34EF2FF call
00404DF4
004DFF51 8D45F4
lea eax, [ebp-$0C]
004DFF54 50
push eax
004DFF55 8B45FC
mov eax, [ebp-$04]
|
004DFF58 E83F4CF2FF call
00404B9C
004DFF5D 50
push eax
004DFF5E 8B45F0
mov eax, [ebp-$10]
|
004DFF61 E8364CF2FF call
00404B9C
004DFF66 59
pop ecx
004DFF67 2BC8
sub ecx, eax
004DFF69 BA01000000 mov
edx, $00000001
004DFF6E 8B45FC
mov eax, [ebp-$04]
|
004DFF71 E87E4EF2FF call
00404DF4
004DFF76 33F6
xor esi, esi
004DFF78 8B45F4
mov eax, [ebp-$0C]
|
004DFF7B E81C4CF2FF call
00404B9C
004DFF80 85C0
test eax, eax
004DFF82 7E4E
jle 004DFFD2
004DFF84 8B45F4
mov eax, [ebp-$0C]
|
004DFF87 E8104CF2FF call
00404B9C
004DFF8C 85C0
test eax, eax
004DFF8E 7E42
jle 004DFFD2
004DFF90 8B45F4
mov eax, [ebp-$0C]
|
004DFF93 E8044CF2FF call
00404B9C==》取去掉最後幾位數字的字元
004DFF98 85C0
test eax, eax 這裡是GOLDVIEW32AB
004DFF9A 7E1B
jle 004DFFB7
004DFF9C BB01000000 mov
ebx, $00000001
004DFFA1 8B55F4
mov edx, [ebp-$0C]
004DFFA4 0FB6541AFF movzx
edx, byte ptr [edx+ebx-$01]-+對GOLDVIEW32AB進行運算
004DFFA9 0FAFD3
imul edx, ebx
|s="GOLDVIEW32AB":y=0
004DFFAC 6BCB0B
imul ecx, ebx, $0B
|for i=1 to len(s)
004DFFAF 03D1
add edx, ecx
| x=asc(mid$(s,i,1))
004DFFB1 03F2
add esi, edx
| x=x*i
004DFFB3 43
inc ebx
| x=i*&hb+x
004DFFB4 48
dec eax
| y=y+x
004DFFB5 75EA
jnz 004DFFA1
-+next i
004DFFB7 8D55E8
lea edx, [ebp-$18]
004DFFBA 8BC6
mov eax, esi
|
004DFFBC E80395F2FF call
004094C4==》獲得最後幾位是數字的字元,這裡是1234
004DFFC1 8B45E8
mov eax, [ebp-$18]==》eax=y=6100
004DFFC4 8B55F0
mov edx, [ebp-$10]==》edx=1234
|
004DFFC7 E8144DF2FF call
00404CE0==》比較是否相等
004DFFCC 7504
jnz 004DFFD2
004DFFCE C645FB01 mov
byte ptr [ebp-$05], $01
004DFFD2 33C0
xor eax, eax
004DFFD4 5A
pop edx
004DFFD5 59
pop ecx
004DFFD6 59
pop ecx
004DFFD7 648910
mov fs:[eax], edx
****** FINALLY
|
* Possible String Reference to: 'E^[]@'
|
004DFFDA 68FCFF4D00 push
$004DFFFC
004DFFDF 8D45E8
lea eax, [ebp-$18]
004DFFE2 BA04000000 mov
edx, $00000004
|
004DFFE7 E81C49F2FF call
00404908
004DFFEC 8D45FC
lea eax, [ebp-$04]
|
004DFFEF E8F048F2FF call
004048E4
004DFFF4 C3
ret
004DFFF5 E98E42F2FF jmp
00404288
004DFFFA EBE3
jmp 004DFFDF
****** END
|
004DFFFC 8A45FB
mov al, byte ptr [ebp-$05]
004DFFFF 5E
pop esi
004E0000 5B
pop ebx
004E0001 8BE5
mov esp, ebp
004E0003 5D
pop ebp
004E0004 C3
ret
到此,我們可以得到一個合法的註冊碼是:AB6100.
相關文章
- 班門弄斧之暴破檔案整容專家 3.0 (6千字)2001-10-09
- 班門弄斧之暴破網頁特效小精靈 (6千字)2001-10-10網頁特效
- 一個Node.js初學者的“班門弄斧2015-12-25Node.js
- 自己寫的第一本Linux教程,也小小的班門弄斧一下2015-10-21Linux
- 菜鳥破解錄之 GIF Construction Set Pro及演算法分析
(8千字)2000-09-01Struct演算法
- 簡單演算法:迷你網路電視演算法分析 (8千字)2015-11-15演算法
- Screen Demo Maker
V3.0註冊演算法分析 (8千字)2002-09-10演算法
- 演算法分析: <獻給初學者>
之四 (9千字)2002-06-06演算法
- Mouse Odometer v2.0破解(入門) (5千字)2000-10-01
- GSview V4.12 for Windows註冊演算法分析 -
OCG (8千字)2015-11-15ViewWindows演算法
- 護花使者 2.0演算法分析2015-11-15演算法
- 脫Remote Administrator v2.0的殼 (8千字)2001-06-24REM
- <<Anti-Hack>> 2.0註冊演算法分析2003-06-06演算法
- anti-homeMade(1): 檔案斧頭 fileaxe v1.00 (1千字)2015-11-15
- EmEditor v3 Version 3.09 漢化版註冊碼演算法分析
(8千字)2001-01-09演算法
- 學演算法的看過來 》》》演算法分析:
<獻給初學者> 之五 (5千字)2002-06-07演算法
- 贏家股票盤後分析1.2 (8千字)2001-07-07
- 炒股理財演算法分析 (3千字)2001-03-31演算法
- HappyEO演算法分析
(11千字)2015-11-15APP演算法
- Sitman2.1
演算法分析 (5千字)2015-11-15演算法
- 菜鳥破解錄自之 Dialup Constructor 及演算法分析
(6千字)2000-09-11Struct演算法
- 黑馬多媒體電子教室精簡版簡單演算法分析 (8千字)2015-11-15演算法
- 菜鳥破解錄(11)之 WinGlobe2.0 (7千字)2000-07-24
- System
commander 8 演算法分析2004-07-17演算法
- rOYALaCCEZZ Trial Crackme 3.2 演算法分析 (10千字)2002-02-27演算法
- SuperCleaner演算法分析----菜鳥級
(12千字)2015-11-15演算法
- Readbook 1.42版 演算法分析。 (1千字)2015-11-15演算法
- Tray Helper V 3.6演算法分析 (26千字)2015-11-15演算法
- 炒股理財3.1 演算法分析(15千字)2015-11-15演算法
- FolderView 1.7
註冊演算法分析 (14千字)2015-11-15View演算法
- SysSync Version 1.02簡單演算法分析+VB序號產生器原始碼 (8千字)2015-11-15演算法原始碼
- WinRip 2.0保護機制分析及其補丁製作
(9千字)2015-11-15
- Embird32 防破解技術的分析 (8千字)2001-04-29
- SynchroMagic 2.0 build 503 (2千字)2001-05-20UI
- 重新貼過註冊演算法分析 (16千字)2001-10-23演算法
- PC 安全虎[Beta 1]演算法分析 (6千字)2001-12-05演算法
- 屏保自己做2.61版演算法分析! (7千字)2002-02-18演算法
- eLib2.01演算法分析
(31千字)2015-11-15演算法