Disk Chief 1.2 簡單註冊演算法分析
Disk Chief 1.2 簡單註冊演算法分析
破解目標:Disk
Chief 1.2
官方主頁:http://dekasoftware.mastak.com/
軟體簡介:Windows 下類似資源管理器的檔案管理軟體
下載地址:http://dekasoftware.mastak.com/diskchief.zip
作者:炎之川[BCG]
時間:2003.4.29
主頁:http://skipli.yeah.net/
========================================================================
宣告:
本文純屬技術交流,無其他任何目的,轉載請註明作者並保持文章的完整。
========================================================================
簡單分析後用
Ollydbg 載入程式,在 0046FD0C 處下斷點,然後 Ctrl+F2 重新開始,F9 執行程式,在註冊對話方塊中填入註冊名和假註冊碼:
Name:
lovefire[BCG]
S/N: 9876543210
按
Register,被 Ollydbg 斷下:
(; 後是 Ollydbg 所分析的內容,// 後是我加的註釋,文中數值均為十六進位制值)
0046FD0C
/. 55 PUSH EBP //斷點
0046FD0D
|. 8BEC MOV EBP,ESP
0046FD0F |.
6A 00 PUSH 0
0046FD11 |. 6A 00
PUSH 0
0046FD13 |. 53
PUSH EBX
0046FD14 |. 56
PUSH ESI
0046FD15 |. 8BD8
MOV EBX,EAX
0046FD17 |. 33C0 XOR EAX,EAX
0046FD19
|. 55 PUSH EBP
0046FD1A |.
68 1DFE4600 PUSH DiskChie.0046FE1D
0046FD1F |. 64:FF30
PUSH DWORD PTR FS:[EAX]
0046FD22 |. 64:8920
MOV DWORD PTR FS:[EAX],ESP
0046FD25 |. 8D55 F8
LEA EDX,DWORD PTR SS:[EBP-8]
0046FD28 |. 8B83 E8010000
MOV EAX,DWORD PTR DS:[EBX+1E8]
0046FD2E |. E8 1D1DFBFF CALL
DiskChie.00421A50
0046FD33 |. 8B45 F8 MOV
EAX,DWORD PTR SS:[EBP-8]
0046FD36 |. 33D2
XOR EDX,EDX
0046FD38 |. E8 277DF9FF CALL DiskChie.00407A64
0046FD3D
|. 8BF0 MOV ESI,EAX
0046FD3F |.
8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0046FD42 |.
8B83 E0010000 MOV EAX,DWORD PTR DS:[EBX+1E0]
0046FD48 |. E8 031DFBFF
CALL DiskChie.00421A50
0046FD4D |. 8BD6
MOV EDX,ESI
0046FD4F |. 8B45 FC MOV
EAX,DWORD PTR SS:[EBP-4] //註冊名放入eax
0046FD52 |. E8 85B90500
CALL DiskChie.004CB6DC //演算法,我們跟進去
0046FD57 |. 84C0
TEST AL,AL //al=1 則註冊成功
0046FD59 |.
74 7E JE SHORT DiskChie.0046FDD9
0046FD5B
|. 85F6 TEST ESI,ESI
0046FD5D |.
74 7A JE SHORT DiskChie.0046FDD9
0046FD5F
|. A1 20464D00 MOV EAX,DWORD PTR DS:[4D4620]
0046FD64 |.
8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0046FD67 |.
E8 5C3EF9FF CALL DiskChie.00403BC8
0046FD6C |. A1 1C454D00
MOV EAX,DWORD PTR DS:[4D451C]
0046FD71 |. 8930
MOV DWORD PTR DS:[EAX],ESI
0046FD73 |. B9 34FE4600
MOV ECX,DiskChie.0046FE34
; ASCII "diskchief.ini" //註冊成功就將資訊寫入 dirscan.ini
中
0046FD78 |. B2 01 MOV DL,1
0046FD7A
|. A1 88784500 MOV EAX,DWORD PTR DS:[457888]
0046FD7F |.
E8 607BFEFF CALL DiskChie.004578E4
0046FD84 |. 8BF0
MOV ESI,EAX
0046FD86 |. A1 20464D00
MOV EAX,DWORD PTR DS:[4D4620]
0046FD8B |. 8B00
MOV EAX,DWORD PTR DS:[EAX]
0046FD8D |. 50
PUSH EAX
0046FD8E |. B9 4CFE4600 MOV
ECX,DiskChie.0046FE4C ;
ASCII "User"
0046FD93 |. BA 5CFE4600 MOV
EDX,DiskChie.0046FE5C ;
ASCII "GENERAL"
0046FD98 |. 8BC6
MOV EAX,ESI
0046FD9A |. E8 D97BFEFF CALL DiskChie.00457978
0046FD9F
|. A1 1C454D00 MOV EAX,DWORD PTR DS:[4D451C]
0046FDA4 |.
8B00 MOV EAX,DWORD PTR DS:[EAX]
0046FDA6
|. 50 PUSH EAX
0046FDA7 |.
B9 6CFE4600 MOV ECX,DiskChie.0046FE6C
; ASCII "Number"
0046FDAC |.
BA 5CFE4600 MOV EDX,DiskChie.0046FE5C
; ASCII "GENERAL"
0046FDB1 |.
8BC6 MOV EAX,ESI
0046FDB3 |. E8 247DFEFF
CALL DiskChie.00457ADC
0046FDB8 |. 8BC6
MOV EAX,ESI
0046FDBA |. E8 8D32F9FF CALL DiskChie.0040304C
0046FDBF
|. 6A 00 PUSH 0
0046FDC1 |. B9
74FE4600 MOV ECX,DiskChie.0046FE74
; ASCII "Disk Chief v. 1.2"
0046FDC6
|. BA 88FE4600 MOV EDX,DiskChie.0046FE88
; ASCII "Thank you for registering
Disk Chief" //註冊成功
0046FDCB |. A1 28464D00 MOV
EAX,DWORD PTR DS:[4D4628]
0046FDD0 |. 8B00
MOV EAX,DWORD PTR DS:[EAX]
0046FDD2 |. E8 811AFCFF CALL
DiskChie.00431858
0046FDD7 |. EB 18 JMP
SHORT DiskChie.0046FDF1
0046FDD9 |> 6A 00
PUSH 0
0046FDDB |. B9 74FE4600 MOV ECX,DiskChie.0046FE74
; ASCII "Disk
Chief v. 1.2"
0046FDE0 |. BA B0FE4600 MOV EDX,DiskChie.0046FEB0
; ASCII "Wrong
serial number!" //註冊失敗
0046FDE5 |. A1 28464D00 MOV
EAX,DWORD PTR DS:[4D4628]
0046FDEA |. 8B00
MOV EAX,DWORD PTR DS:[EAX]
0046FDEC |. E8 671AFCFF CALL
DiskChie.00431858
0046FDF1 |> 8BC3
MOV EAX,EBX
0046FDF3 |. E8 ECF7FBFF CALL DiskChie.0042F5E4
0046FDF8
|. 8BC3 MOV EAX,EBX
0046FDFA |.
E8 25FAFBFF CALL DiskChie.0042F824
0046FDFF |. 33C0
XOR EAX,EAX
0046FE01 |. 5A
POP EDX
0046FE02 |. 59
POP ECX
0046FE03 |. 59
POP ECX
0046FE04 |. 64:8910 MOV
DWORD PTR FS:[EAX],EDX
0046FE07 |. 68 24FE4600 PUSH DiskChie.0046FE24
0046FE0C
|> 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
0046FE0F
|. E8 603DF9FF CALL DiskChie.00403B74
0046FE14 |.
8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0046FE17 |.
E8 583DF9FF CALL DiskChie.00403B74
0046FE1C \. C3
RETN
------------------------------------------------------------------------
進入
004CB6DC 的演算法call
004CB6DC
/$ 55 PUSH EBP
004CB6DD |.
8BEC MOV EBP,ESP
004CB6DF |. 83C4
F8 ADD ESP,-8
004CB6E2 |. 53
PUSH EBX
004CB6E3 |. 56
PUSH ESI
004CB6E4 |. 8955 F8
MOV DWORD PTR SS:[EBP-8],EDX
004CB6E7 |. 8945 FC
MOV DWORD PTR SS:[EBP-4],EAX //取使用者名稱
004CB6EA |. 8B45
FC MOV EAX,DWORD PTR SS:[EBP-4]
004CB6ED |.
E8 B288F3FF CALL DiskChie.00403FA4
004CB6F2 |. 33C0
XOR EAX,EAX
004CB6F4 |. 55
PUSH EBP
004CB6F5 |. 68 53B74C00 PUSH
DiskChie.004CB753
004CB6FA |. 64:FF30 PUSH
DWORD PTR FS:[EAX]
004CB6FD |. 64:8920 MOV
DWORD PTR FS:[EAX],ESP
004CB700 |. 8B45 FC MOV
EAX,DWORD PTR SS:[EBP-4]
004CB703 |. E8 E886F3FF CALL DiskChie.00403DF0
//取得註冊名長度
004CB708 |. 33DB
XOR EBX,EBX //清零
004CB70A |. 8BF0
MOV ESI,EAX //eax 中是註冊名,esi作為計數器的參照數
004CB70C |. 85F6
TEST ESI,ESI //註冊名輸入了麼?
004CB70E |.
7E 22 JLE SHORT DiskChie.004CB732 //沒有輸入就886啦~~~
004CB710
|. B9 01000000 MOV ECX,1 //ecx 置1,作為記數器
//演算法開始
004CB715
|> 69C1 15AE510D /IMUL EAX,ECX,0D51AE15//eax = ecx*0D51AE15,ecx
是記數器
004CB71B |. 8B55 FC |MOV EDX,DWORD PTR
SS:[EBP-4] //註冊名送 edx
004CB71E |. 0FB6540A FF |MOVZX
EDX,BYTE PTR DS:[EDX+ECX-1] //逐位取註冊名的字元
004CB723 |. F7EA
|IMUL EDX //eax*edx,得數放入eax,溢位值放入edx
004CB725
|. 03C3 |ADD EAX,EBX //eax=eax+ebx,此處第一次迴圈時ebx=0
004CB727
|. 99 |CDQ //edx 清零
004CB728
|. 33C2 |XOR EAX,EDX //eax^edx,得數放入eax
004CB72A
|. 2BC2 |SUB EAX,EDX //eax=eax-edx,edx中是上面乘法運算的溢位值
004CB72C
|. 8BD8 |MOV EBX,EAX //ebx=eax
004CB72E
|. 41 |INC ECX //記數器+1
004CB72F
|. 4E |DEC ESI //計數器的參照數-1
004CB730
|.^75 E3 \JNZ SHORT DiskChie.004CB715
//跳回去繼續迴圈
//演算法結束,eax 中儲存的就是註冊碼的16進位制值,轉換為10進位制即是註冊碼
004CB732
|> 3B5D F8 CMP EBX,DWORD PTR SS:[EBP-8]
//真假註冊碼對比……
004CB735 |. 75 04 JNZ SHORT
DiskChie.004CB73B //不一樣就……
004CB737 |. B3 01
MOV BL,1
004CB739 |. EB 02 JMP
SHORT DiskChie.004CB73D
004CB73B |> 33DB
XOR EBX,EBX
004CB73D |> 33C0
XOR EAX,EAX
004CB73F |. 5A
POP EDX
004CB740 |. 59 POP
ECX
004CB741 |. 59 POP ECX
004CB742
|. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004CB745
|. 68 5AB74C00 PUSH DiskChie.004CB75A
004CB74A |>
8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004CB74D |.
E8 2284F3FF CALL DiskChie.00403B74
004CB752 \. C3
RETN
004CB753 .^E9 C07EF3FF
JMP DiskChie.00403618
004CB758 .^EB F0
JMP SHORT DiskChie.004CB74A
004CB75A . 8BC3
MOV EAX,EBX
004CB75C . 5E
POP ESI
004CB75D . 5B
POP EBX
004CB75E . 59
POP ECX
004CB75F . 59 POP
ECX
004CB760 . 5D POP EBP
004CB761
. C3 RETN
------------------------------------------------------------------------
演算法總結:
1、具體迴圈次數乘預設的數0D51AE15,再乘逐位取得的註冊名的ASCII值,值放入eax,溢位值放入edx,最後加上ebx的值,ebx初始值為0,第二次迴圈的值由第一次迴圈所得值決定,之後累加;
2、edx清零之後,(eax*edx)-edx,得出的值放入
ebx,供下次迴圈使用;
3、迴圈完成之後,eax中存放的值即註冊碼的16進位制數,轉換為10進位制即為註冊碼。
至此
Disk Chief 1.2 註冊演算法分析完成,一組可用的註冊碼:
Name: lovefire[BCG]
S/N: 1373681969
註冊資訊儲存:
註冊成功後,註冊資訊寫入
windows 安裝目錄下的 diskchief.ini 檔案中。
[GENERAL]
User=lovefire[BCG]
Number=1373681969
------------------------------------------------------------------------
炎之川
屬於中國破解組織BCG
(BeGiNnEr'S CrAcKiNg Group)
_/_/_/ _/_/_/
_/_/_/
_/ _/ _/ _/
_/_/_/ _/ _/ _/_/
_/ _/ _/ _/ _/
_/_/_/ _/_/_/
_/_/_/
相關文章
- 中文內碼轉換巨匠1.2【VB簡單】註冊演算法2004-09-22演算法
- RegEditor登錄檔修改器 1.2註冊演算法簡析2015-11-15演算法
- 青少兒發育分析和身高預測註冊演算法(簡單)2015-11-15演算法
- supercleaner註冊演算法分析2015-11-15演算法
- SpeedFlash註冊演算法分析(VB)2015-11-15演算法
- 財智老闆通3.04註冊版---註冊演算法分析2003-03-16演算法
- Instant Source 註冊演算法分析+註冊器原始碼2015-11-15演算法原始碼
- Math ActivityMaker Skills v2.20註冊演算法(簡單)2015-11-15演算法
- spycop5.5簡要註冊分析2015-11-15
- Adult PDF Password Recovery v2.1註冊演算法(簡單)2015-11-15演算法
- 簡單演算法――小護士 V1.22015-11-15演算法
- Screen Demo Maker 3.0 註冊演算法分析2003-07-15演算法
- <<Anti-Hack>> 2.0註冊演算法分析2003-06-06演算法
- Personal Antispy 1.14 註冊演算法分析2015-11-15演算法
- 冰盾濾鏡註冊演算法分析2015-11-15演算法
- DLL Show V4.4 註冊演算法分析2015-11-15演算法
- 計程車管理
1.2 演算法分析2004-08-16演算法
- Uninstall
Manager V4.20簡單註冊演算法+加密演算法分析+序號產生器C++原始碼:-)2004-10-30演算法加密C++原始碼
- E族百變桌面6.0註冊演算法分析2015-11-15演算法
- FolderView 1.7
註冊演算法分析 (14千字)2015-11-15View演算法
- Laravel——簡訊註冊2018-05-28Laravel
- HappyEO電子琴3.05標準版註冊演算法分析(重啟驗證,簡單,給初學者)2015-11-15APP演算法
- ffmpeg分析系列之一(註冊該註冊的)2010-11-04
- LanSee 註冊演算法2015-11-15演算法
- 新狐傳真群發2.0註冊演算法分析2003-06-29演算法
- 網路精確時鐘 2.25註冊演算法分析2003-07-30演算法
- 重新貼過註冊演算法分析 (16千字)2001-10-23演算法
- 長沙vod點歌系統(註冊演算法分析)2015-11-15演算法
- Netscan pro 3.3 註冊演算法分析全過程2015-11-15演算法
- node+express+mongDB實現簡單登入註冊2019-02-16Express
- NodeJs 建立一個簡單的登陸註冊2019-02-16NodeJS
- Teleport
pro 演算法簡單分析2004-07-15演算法
- 《MAGICWIN RELEASE 1.2》註冊碼破解 高手莫入! (2千字)2001-05-07
- 公務員之路3.0註冊分析2015-11-15
- 巨集遠簡訊群發軟體(個人版)註冊分析2015-11-15
- IEPopupKiller 1.2破解手記--演算法分析2015-11-15演算法
- 東晨庫管網路版 6.5註冊演算法分析2003-08-14演算法
- EffeTech HTTP Sniffer 3.2註冊演算法分析 (5千字)2002-06-24HTTP演算法