菜鳥破解錄之 GIF Construction Set Pro及演算法分析 (8千字)
菜鳥破解錄之 GIF Construction Set Pro及演算法分析
軟體名稱: GIF Construction Set Pro
軟體版本: 2.0a(Ptach 20)
軟體大小: 4132KB
軟體授權: 共享軟體
使用平臺: Win95/98/NT
釋出公司: http://www.mindworkshop.com/alchemy/gifcon.html
軟體簡介:
快速、專業地建立為你的網頁建立透明、交錯和活動的GIF檔案。動畫嚮導可另你在幾分鐘之內建立極具魅力的Web圖形。
作 者:xiA Qin
解密日前:2000年8月30日
解密工具:Trw2000 1.22
說 明:這是我寫的第一篇演算法分析的破文,難免有錯誤存在,望各位大俠指點。
這個程式需要在安裝時,就需要輸入註冊碼和註冊名。
輸入註冊資訊:
註冊 碼:11111-22-33333-44
注:為了方便說明,分為4段。
第1段為:11111
第2段為:22
第3段為:33333
第4段為:44
註冊名:Chinese #字元數必須大於5位數。
..............................
015F:00403163 PUSH EAX
015F:00403164 LEA EDX,[EBP+FFFFFBF4]
015F:0040316A PUSH EDX
015F:0040316B CALL 00424508
015F:00403170 ADD ESP,BYTE +08
015F:00403173 LEA ECX,[EBP+FFFFFBF4]
015F:00403179 PUSH ECX
015F:0040317A PUSH DWORD 0042FCB6
015F:0040317F CALL 00424598
015F:00403184 ADD ESP,BYTE +08
015F:00403187 MOV DWORD [EBP-04],01
015F:0040318E PUSH DWORD 0042FCB6
015F:00403193 CALL 004245C8
015F:00403198 POP ECX
015F:00403199 CMP EAX,BYTE +11
//又要檢查註冊碼位數,17位。
015F:0040319C JZ 004031A3
//不相等,就跳。
015F:0040319E XOR EAX,EAX
015F:004031A0 MOV [EBP-04],EAX
015F:004031A3 CMP DWORD [EBP-04],BYTE +00
015F:004031A7 JZ 00403203
015F:004031A9 XOR EDX,EDX
015F:004031AB MOV [EBP-08],EDX
015F:004031AE MOV ESI,EDX
015F:004031B0 JMP SHORT 004031D4
015F:004031B2 XOR EAX,EAX
//將eax清零。
015F:004031B4 MOV AL,[ESI+0042F8B4]
//依次載入姓名字元。
015F:004031BA PUSH EAX
015F:004031BB CALL 00429FCC
//將大寫A~Z轉換為小寫a~z。
015F:004031C0 POP ECX
015F:004031C1 MOV EDX,ESI
015F:004031C3 AND EDX,BYTE +07
015F:004031C6 XOR ECX,ECX
015F:004031C8 MOV CL,[EDX+0042E088]
015F:004031CE XOR EAX,ECX
// 把EAX和ECX做異或操作,
015F:004031D0 ADD [EBP-08],EAX
//累加異或操作 [EBP-08]=[EBP-08]+EAX
015F:004031D3 INC ESI
015F:004031D4 CMP BYTE [ESI+0042F8B4],00
//取下個字元,等於00,就結束計算。
015F:004031DB JNZ 004031B2
//比較姓名字元是否計算結束
015F:004031DD MOV EAX,[EBP-08]
//將[EBP-08]的值移入暫存器eax中
015F:004031E0 MOV ECX,64
//將16進位制的64移入暫存器ECX
015F:004031E5 CDQ
//判斷eax中的值是否大於80000000,
015F:004031E6 IDIV ECX
//用EAX與ECX求餘.
015F:004031E8 MOV ESI,EDX
//餘數從EDX移入ESI。
一、演算法總結:
1、這部分就是把你輸入的註冊名的每個字元都轉成相應的Ascii碼!
2、然後,與相對應80 40 20 10 08 04 02 01進行異或計算。再將計算後的值累加。
然後註冊名大於8位,就迴圈使用80 40 20 10 08 04 02 01。
3、直到註冊名計算完畢的值A與64求餘。得到B.這就是我們需要的是第2段註冊碼
4、將B轉換成十進位制數就是註冊碼,這就是我們需要的是第2段註冊碼
計算公式:
注:註冊名的第一位用a1來代替,第二位用a2來代替,第三位用a3來代替......,以次類推。
(a1 xor 80)+(a2 xor 40)+(a3 xor 20)+(a4 xor 10)+(a5 xor 08)+(a6 xor 04)+(a7
xor 02)
+(a8 xor 80)+(a9 xor 80)+(a10 xor 40)+(a10 xor 20)+(a11 xor 10)+(a12 xor 08).......=A
A IDIV 64=B
將B轉換成十進位制數就是註冊碼. 是第2段註冊碼。
二、舉例說明:
我輸入的註冊名是chinese,它對應的Ascii如下。
字 符: c h i n e s e
Ascii: 63 68 69 6e 65 73 65 與80 40 20 10 08 04 02 進行異或計算
(63 xor 80)+(68 xor 40)+(69 xor 20)+(6e xor 10)+(65 xor 08)+(73 xor 04)+(65xor
02)=
e3+28+49+7e+6d+77+67=31D
31D IDIV 64 =61
61轉換成十進位制為97。 <<--第2段註冊碼
015F:004031EA TEST ESI,ESI
015F:004031EC JNZ 004031EF
015F:004031EE INC ESI
015F:004031EF PUSH DWORD 0042FCBC
015F:004031F4 CALL 0042A088
015F:004031F9 POP ECX
015F:004031FA CMP ESI,EAX
//比較註冊碼。
015F:004031FC JZ 00403203
//不相等,就跳。
015F:004031FE XOR EAX,EAX
015F:00403200 MOV [EBP-04],EAX
015F:00403203 CMP DWORD [EBP-04],BYTE +00
015F:00403207 JZ NEAR 0040328E
015F:0040320D XOR EDX,EDX
015F:0040320F MOV [EBP-08],EDX
015F:00403212 XOR ESI,ESI
015F:00403214 JMP SHORT 0040322F
015F:00403216 MOV AL,[ESI+0042FCB6] <<--|
11111
015F:0040321C MOV EDX,ESI
|
015F:0040321E AND EDX,BYTE +07
|
015F:00403221 XOR AL,[EDX+0042E088]
|
015F:00403227 XOR ECX,ECX
|
015F:00403229 MOV CL,AL
|
015F:0040322B ADD [EBP-08],ECX
|
015F:0040322E INC ESI
|
015F:0040322F CMP BYTE [ESI+0042FCB6],00 |
015F:00403236 JZ 0040323D
|
015F:00403238 CMP ESI,BYTE +05
|
015F:0040323B JL 00403216
<<--|
015F:0040323D XOR ESI,ESI
015F:0040323F JMP SHORT 0040325A
015F:00403241 MOV AL,[ESI+0042FCBF] <<--|
015F:00403247 MOV EDX,ESI
| 33333
015F:00403249 AND EDX,BYTE +07
|
015F:0040324C XOR AL,[EDX+0042E088]
|
015F:00403252 XOR ECX,ECX
|
015F:00403254 MOV CL,AL
|
015F:00403256 ADD [EBP-08],ECX
|
015F:00403259 INC ESI
|
015F:0040325A CMP BYTE [ESI+0042FCBF],00 |
015F:00403261 JZ 00403268
|
015F:00403263 CMP ESI,BYTE +05
|
015F:00403266 JL 00403241
<<--|
015F:00403268 MOV EAX,[EBP-08]
015F:0040326B MOV ECX,64
015F:00403270 CDQ
015F:00403271 IDIV ECX
015F:00403273 MOV ESI,EDX
此處的計算方法基本相同,不同的地方是它是用註冊碼的第1段(11111)和第3段(33333)來計算。
一、演算法總結:
1、把你輸入的註冊碼第1段(11111)的每個字元都轉成相應的Ascii碼!
2、然後,與相對應80 40 20 10 08 進行異或計算。再將計算後的值A累加。
3、把你輸入的註冊碼第3段(33333)的每個字元都轉成相應的Ascii碼!
4、然後,與相對應80 40 20 10 08 進行異或計算。再將計算後的值B累加。
5、直到註冊碼計算完畢的值B與64求餘。得到C.這就是我們需要的註冊碼C。
6、將C轉換成十進位制數就是註冊碼,這就是我們需要的第4段註冊碼。
計算公式:
注:註冊碼第1段(11111)的第一位用a1來代替,第二位用a2來代替,第三位用a3來代替......,以次類推
註冊碼第3段(33333)的第一位用b1來代替,第二位用b2來代替,第三位用b3來代替......,以次類推
(a1 xor 80)+(a2 xor 40)+(a3 xor 20)+(a4 xor 10)+(a5 xor 08)=A
A+(b1 xor 80)+(b2 xor 40)+(b3 xor 20)+(b4 xor 10)+(b5 xor 08)=B
B IDIV 64=C
將C轉換成十進位制數就是註冊碼.
二、舉例說明:
我輸入的註冊碼第1段是11111、第2段33333。
(31 xor 80)+(31 xor 40)+(31 xor 20)+(31 xor 10)+(31 xor 08)=B1+71+11+21+39=18D
18D+(33 xor 80)+(33 xor 40)+(33 xor 20)+(33 xor 10)+(33 xor 08)=18D+B3+73+13+23+3B=324
324 IDIV 64=04
04轉換成十進位制為04。<<--第4段註冊碼。
015F:00403275 TEST ESI,ESI
015F:00403277 JNZ 0040327A
015F:00403279 INC ESI
015F:0040327A PUSH DWORD 0042FCC5
015F:0040327F CALL 0042A088
015F:00403284 POP ECX
015F:00403285 CMP ESI,EAX
// ? eax 44 是輸入的註冊碼.
015F:00403287 JZ 0040328E
? esi 04 正確的註冊碼.
015F:00403289 XOR EAX,EAX
015F:0040328B MOV [EBP-04],EAX
015F:0040328E CMP DWORD [EBP-04],BYTE +00
015F:00403292 JNZ 004032A6
015F:00403294 PUSH DWORD 00430FCC
015F:00403299 PUSH EBX
015F:0040329A CALL 004038FD
//密碼失敗對話方塊
015F:0040329F ADD ESP,BYTE +08
015F:004032A2 XOR EAX,EAX
015F:004032A4 JMP SHORT 00403310
.........................
透過以上分析可以知道,這個程式是用註冊冊名計算第2段註冊嗎。用第1段和第3段來計算第4段註冊碼。
也就是說,註冊碼第2段,同註冊名有關。
註冊碼第4段,同註冊碼第1段和第3段有關。
整理一下:
註冊碼:11111-97-33333-04
註冊名:Chinese
羅羅嗦嗦講了一大堆,希望大家能夠明白我的意思!
相關文章
- 菜鳥破解錄(17)之 BackupXpress Pro (3千字)2000-08-05
- 菜鳥破解錄自之 Dialup Constructor 及演算法分析
(6千字)2000-09-11Struct演算法
- 菜鳥破解錄之 The Cleaner (4千字)2000-08-12
- 菜鳥破解錄之 DlgXRSizer (4千字)2000-08-17
- 菜鳥破解實錄(16)之 CD Box Labeler Pro (4千字)2000-08-03
- 菜鳥破解錄之 Animated Screen (4千字)2000-08-13
- 菜鳥破解錄之 CleanReg 3.2.6 (3千字)2000-08-15
- 菜鳥破解錄之 AutoDialogs (3千字)2000-08-18
- 菜鳥破解錄(九)之 CDSpace 1.95 (4千字)2000-07-22
- 菜鳥破解錄(19)之 XMLwriter 1.21 (9千字)2000-08-08XML
- 菜鳥破解錄(10)之 A Day in the Life 1.51
(6千字)2000-07-23
- 菜鳥破解實錄 之Terrapin FTP Browser (5千字)2000-09-09APIFTP
- 菜鳥破解錄(11)之 WinGlobe2.0 (7千字)2000-07-24
- 菜鳥破解錄(12)之 AxMan3.10 (3千字)2000-07-26
- 菜鳥破解錄(18)之 GWD Text Editor 3.0 (4千字)2000-08-06
- 菜鳥破解實錄之 Dynamic Desktop 1.4.2 (9千字)2000-08-09
- 菜鳥破解實錄 之 GWD Text Editor 3.0 (9千字)2000-08-16
- 菜鳥破解錄 JPEG Optimizer3.15 (6千字)2000-08-14
- 菜鳥破解錄(14)之 3DMark2000 1.0 (4千字)2000-07-313D
- 菜鳥破解實錄(五)之 EditPlus v2.01 (7千字)2000-08-01
- 菜鳥破解錄之 黑馬輸入法2000 (2千字)2000-08-11
- SuperCleaner演算法分析----菜鳥級
(12千字)2015-11-15演算法
- 菜鳥學破解(七)之 PowerZip V5.2 (3千字)2000-07-21
- 菜鳥破解實錄(八)之 超級信封列印工具 v3.2 (6千字)2000-07-21
- HotkeyMaster演算法分析----菜鳥級
(4千字)2015-11-15AST演算法
- 破解GIF Movie Gear 3.01 (8千字)2002-03-13
- 菜鳥破解一篇:vcrkme01 (11千字)2001-10-19
- 菜鳥學堂之破解Sessioncookie的方法(轉)2007-09-19SessionCookie
- 黑娃講破解知識之菜鳥的破解之路(轉)2007-08-12
- Image
to PDF演算法分析(菜鳥文章)2004-05-07演算法
- 菜鳥破解vis_ddr v1.11 (14千字)2001-12-08
- 破解實錄(四)之 NoteTab Pro Trial 4.81 (3千字)2000-07-18
- Teleport Pro破解實戰錄 (6千字)2000-05-28
- 菜鳥初鳴--最易破解的軟體 supercleaner (2千字)2001-10-11
- 菜鳥破解之軟體自己顯示註冊碼2015-11-15
- 某國產Office for Linux的破解(簡單,菜鳥水平) (4千字)2015-11-15Linux
- 破解WS_FTP Pro 7.02 (8千字)2001-10-28FTP
- 《冠軍足球經理2001》免光碟破解實錄_供菜鳥閱讀 (5千字)2002-01-22