國圖圖書下載系統9.0的破解過程及註冊碼演算法,誰能幫我寫個序號產生器來?:) (13千字)
國圖圖書下載系統9.0的破解過程及註冊碼演算法,誰能幫我寫個序號產生器來?:)
國圖圖書下載系統9.0的破解過程及註冊碼演算法
作者:Crack007
主頁:http://www.crack007.com ( ^-^ )
破解日期:2001-11-26
破解工具:TRW2000 1.22 Fi2.49 Wasm 8.93黃金版
難度:較易
軟體下載地址:http://www.widenstage.com/artech/product/nlcdownload/nlcdownload.exe(1633KB)
軟體簡介: 國家圖書館是繼超星圖書館以來的又一家大型電子數字圖書館,現有圖書10餘萬冊,並且不斷增加。本軟體就是專門為下載國家圖書館的電子圖書而設計。共享版只能下載不足150頁的圖書,或者圖書的前150頁。
您註冊以後,將沒有此限制。
主程式用NeoLite v2.0加殼,簡單脫殼後反彙編得到如下資訊:
:0040F484 E827370C00 call 004D2BB0
:0040F489 8BC3
mov eax, ebx
:0040F48B E864090000 call 0040FDF4
:0040F490 8BC3
mov eax, ebx
:0040F492 E879030000 call 0040F810
//看看下面提示語句就知道很經典的,讓我們跟進這個Call
:0040F497 84C0
test al, al
:0040F499 7460
je 0040F4FB //跳則死
:0040F49B 6A00
push 00000000
* Possible StringData Ref from Data Obj ->"感謝您,您已經註冊成功!
重新啟動系統,註冊將會"
->"生效!"
|
:0040F49D BA15E24E00 mov edx,
004EE215
:0040F4A2 66C746102C00 mov [esi+10],
002C
:0040F4A8 8D45E4
lea eax, dword ptr [ebp-1C]
:0040F4AB E864350C00 call 004D2A14
:0040F4B0 FF461C
inc [esi+1C]
:0040F4B3 8B10
mov edx, dword ptr [eax]
:0040F4B5 52
push edx
:0040F4B6 6A02
push 00000002
:0040F4B8 6A00
push 00000000
:0040F4BA 8D4DBA
lea ecx, dword ptr [ebp-46]
:0040F4BD 51
push ecx
:0040F4BE E885940B00 call 004C8948
:0040F4C3 83C40C
add esp, 0000000C
:0040F4C6 8D45BA
lea eax, dword ptr [ebp-46]
:0040F4C9 804DBA04 or
byte ptr [ebp-46], 04
:0040F4CD 668B08
mov cx, word ptr [eax]
:0040F4D0 58
pop eax
:0040F4D1 B202
mov dl, 02
:0040F4D3 E8E8310700 call 004826C0
:0040F4D8 FF4E1C
dec [esi+1C]
:0040F4DB 8D45E4
lea eax, dword ptr [ebp-1C]
:0040F4DE BA02000000 mov edx,
00000002
:0040F4E3 E8C8360C00 call 004D2BB0
:0040F4E8 C7833402000001000000 mov dword ptr [ebx+00000234], 00000001
:0040F4F2 8BC3
mov eax, ebx
:0040F4F4 E83BAB0600 call 0047A034
:0040F4F9 EB58
jmp 0040F553
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040F499(C)
|
:0040F4FB 6A00
push 00000000
* Possible StringData Ref from Data Obj ->"註冊碼錯誤!請重新輸入!"
|
:0040F4FD BA49E24E00 mov edx,
004EE249
:0040F502 66C746103800 mov [esi+10],
0038
-----------------來自 0040F492 E879030000 call 0040F810----
:0040F810 55
push ebp
:0040F811 8BEC
mov ebp, esp
:0040F813 83C4A8
add esp, FFFFFFA8
:0040F816 53
push ebx
:0040F817 56
push esi
:0040F818 57
push edi
:0040F819 8BD8
mov ebx, eax
:0040F81B 8D75B8
lea esi, dword ptr [ebp-48]
:0040F81E B8B0E64E00 mov eax,
004EE6B0
:0040F823 E83C940B00 call 004C8C64
:0040F828 8BC3
mov eax, ebx
:0040F82A E8BD030000 call 0040FBEC
:0040F82F 66C746100800 mov [esi+10],
0008
:0040F835 33D2
xor edx, edx
:0040F837 33C9
xor ecx, ecx
:0040F839 8955FC
mov dword ptr [ebp-04], edx
:0040F83C 33C0
xor eax, eax
:0040F83E FF461C
inc [esi+1C]
:0040F841 8D933C030000 lea edx, dword
ptr [ebx+0000033C]
:0040F847 66C746101400 mov [esi+10],
0014
:0040F84D 66C746102000 mov [esi+10],
0020
:0040F853 894DF8
mov dword ptr [ebp-08], ecx
:0040F856 FF461C
inc [esi+1C]
:0040F859 66C746101400 mov [esi+10],
0014
:0040F85F 66C746102C00 mov [esi+10],
002C
.......省略基本無關初始化的語句,來到下面的計算註冊碼的核心程式碼:
* Possible StringData Ref from Data Obj ->"0x"
|
:0040F9C6 B8F2E24E00 mov eax,
004EE2F2
:0040F9CB E828350C00 call 004D2EF8
:0040F9D0 8D45E4
lea eax, dword ptr [ebp-1C]
:0040F9D3 8B00
mov eax, dword ptr [eax]
:0040F9D5 E89AD00A00 call 004BCA74
:0040F9DA 8945B0
mov dword ptr [ebp-50], eax
:0040F9DD 8955B4
mov dword ptr [ebp-4C], edx
:0040F9E0 FF4E1C
dec [esi+1C]
:0040F9E3 8D45E4
lea eax, dword ptr [ebp-1C]
:0040F9E6 BA02000000 mov edx,
00000002
:0040F9EB E8C0310C00 call 004D2BB0
:0040F9F0 FF4E1C
dec [esi+1C]
:0040F9F3 8D45E8
lea eax, dword ptr [ebp-18]
:0040F9F6 BA02000000 mov edx,
00000002
:0040F9FB E8B0310C00 call 004D2BB0
:0040FA00 66C746101400 mov [esi+10],
0014
:0040FA06 33DB
xor ebx, ebx
:0040FA08 EB6E
jmp 0040FA78
--------------- 以上作用主要是把機器碼轉為16進位制數,即0x...... ----------------
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FAA4(C)
|
:0040FA0A 837DFC00 cmp
dword ptr [ebp-04], 00000000 <---[ebp-04]儲存的是我們填入的E-mail。判斷是否為空
:0040FA0E 7408
je 0040FA18
:0040FA10 8B45FC
mov eax, dword ptr [ebp-04] <---E-mail 地址
:0040FA13 8B50FC
mov edx, dword ptr [eax-04] <---E-mail 字元位數
:0040FA16 EB02
jmp 0040FA1A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA0E(C)
|
:0040FA18 33D2
xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA16(U)
|
:0040FA1A 3BDA
cmp ebx, edx <--- ebx初始值為0 ,並判斷該計算E-mail字元位數是否大於已經迴圈的次數
:0040FA1C 7D3B
jge 0040FA59 <--- 若大於已經迴圈的次數,則轉到0040FA59進行處理
:0040FA1E 8D7B01
lea edi, dword ptr [ebx+01]
:0040FA21 57
push edi
:0040FA22 8D45FC
lea eax, dword ptr [ebp-04]
:0040FA25 50
push eax
:0040FA26 E8652F0C00 call 004D2990
:0040FA2B 83C408
add esp, 00000008
:0040FA2E 8D45FC
lea eax, dword ptr [ebp-04]
:0040FA31 E8D2320C00 call 004D2D08
:0040FA36 037DFC
add edi, dword ptr [ebp-04]
:0040FA39 4F
dec edi
:0040FA3A 0FBE07
movsx eax, byte ptr [edi]
:0040FA3D 99
cdq <-----CDQ指令以方便做64位運算
:0040FA3E 52
push edx
:0040FA3F 50
push eax
:0040FA40 8B45B0
mov eax, dword ptr [ebp-50] <---儲存機器碼後 8 位計算的累計結果
:0040FA43 8B55B4
mov edx, dword ptr [ebp-4C] <---儲存機器碼前 8 位計算的累計結果
:0040FA46 E8D1BE0B00 call 004CB91C
----------------------call 004CB91C---start--------------------------
|:0040F1DE , :0040FA46 , :0040FA66
|
:004CB91C 52
push edx
:004CB91D 50
push eax
:004CB91E 8B442410 mov
eax, dword ptr [esp+10]
:004CB922 F72424
mul dword ptr [esp]
:004CB925 8BC8
mov ecx, eax
:004CB927 8B442404 mov
eax, dword ptr [esp+04] <---[esp+04]: 原始機器碼前 8 位
:004CB92B F764240C mul
[esp+0C]
<---[esp+0c]儲存E-mail碼地址的ASCII的值或00:A1
並與原始機器碼前 8 位相乘,結果儲存在EDX(符號)和EAX(數值)
:004CB92F 03C8
add ecx, eax
<---ECX儲存中間結果
:004CB931 8B0424
mov eax, dword ptr [esp] <---[Esp]: 原始機器碼後 8 位
:004CB934 F764240C mul
[esp+0C]
<---[esp+0c]儲存E-mail碼地址的ASCII的值或00:A1
並與原始機器碼後 8 位相乘,結果儲存在EDX(符號)和EAX
:004CB938 03D1
add edx, ecx
<---EDX為上步運算結果的符號位,並與ECX相加
:004CB93A 59
pop ecx
:004CB93B 59
pop ecx
:004CB93C C20800
ret 0008
----------------------call 004CB91C---End---------------------------
:0040FA4B 83C001
add eax, 00000001 <----後8位計算結果加1
:0040FA4E 83D200
adc edx, 00000000 <----前8位計算結果加0(多此一舉?*^_^*)
:0040FA51 8945B0
mov dword ptr [ebp-50], eax <----儲存前8位計算結果
:0040FA54 8955B4
mov dword ptr [ebp-4C], edx <----儲存後8位計算結果
:0040FA57 EB1E
jmp 0040FA77
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA1C(C)
|
:0040FA59 6A00
push 00000000
<-----符號位
:0040FA5B 68A1000000 push 000000A1
<-----原始值
:0040FA60 8B45B0
mov eax, dword ptr [ebp-50]
:0040FA63 8B55B4
mov edx, dword ptr [ebp-4C]
:0040FA66 E8B1BE0B00 call 004CB91C
<-----用00:A1代替原E-mail
地址的 ASCII碼
依次與機器碼前、後 8 位做相同運算
:0040FA6B 83C001
add eax, 00000001 -----
:0040FA6E 83D200
adc edx, 00000000
|---作用如前述。
:0040FA71 8945B0
mov dword ptr [ebp-50], eax |
:0040FA74 8955B4
mov dword ptr [ebp-4C], edx -----
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA57(U)
|
:0040FA77 43
inc ebx <---計算標誌,用於判斷E-mail字串運算是否結束。
若結束,則用A1代替E-mail字串的ASC值進行運算
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA08(U)
|
:0040FA78 837DFC00 cmp
dword ptr [ebp-04], 00000000
:0040FA7C 7408
je 0040FA86
:0040FA7E 8B4DFC
mov ecx, dword ptr [ebp-04] <---E-mail 地址
:0040FA81 8B41FC
mov eax, dword ptr [ecx-04] <---E-mail 位數
:0040FA84 EB02
jmp 0040FA88
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA7C(C)
|
:0040FA86 33C0
xor eax, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA84(U)
|
:0040FA88 8945AC
mov dword ptr [ebp-54], eax
:0040FA8B C745A808000000 mov [ebp-58], 00000008
:0040FA92 8B55A8
mov edx, dword ptr [ebp-58]
:0040FA95 3B55AC
cmp edx, dword ptr [ebp-54]
:0040FA98 7E05
jle 0040FA9F
:0040FA9A 8D4DA8
lea ecx, dword ptr [ebp-58]
:0040FA9D EB03
jmp 0040FAA2
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA98(C)
|
:0040FA9F 8D4DAC
lea ecx, dword ptr [ebp-54]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040FA9D(U)
|
:0040FAA2 3B19
cmp ebx, dword ptr [ecx] <---ecx=8
:0040FAA4 0F8C60FFFFFF jl 0040FA0A
<---迴圈 8 次
:0040FAAA 66C746105000 mov [esi+10],
0050
:0040FAB0 FF75B4
push [ebp-4C] <----儲存最終後
8 位結果
:0040FAB3 FF75B0
push [ebp-50] <----儲存最終前
8 位結果
:0040FAB6 33D2
xor edx, edx
:0040FAB8 B808000000 mov eax,
00000008
:0040FABD 8955E0
mov dword ptr [ebp-20], edx
將前、後 8 位結果算出後的最終結果作為字串簡單相加即為註冊碼。
。。。。。以下略。。。。
簡單的舉個例子:
我的機器碼是:AEE0B7A4DE8E2DB5
E-mail為:1212
則註冊碼可這樣得到:
第一次執行到0040FA1C並不跳轉,因為剛開始計算的E-mail的ASCII碼為第1個字元,並不大於總位數4。
讓我們跟進0040FA46的這個Call。
首先將機器碼前 8 位EDX(AEE0B7A4)、機器碼後 8 位EAX(DE8E2DB5)壓棧儲存;
然後:
1. AEE0B7A4*31(1的ASC值)=21:79032644=EDX:EAX (誰能告訴我這符號值21是怎麼運算得到的?)
2. 把EAX累加到ECX
3. DE8E2DB5*31(1的ASC值)=2A:9936BFA5=EDX:EAX
4. ECX+2A=7903268E,儲存到EDX
5. 9936BFA5+1=9936BFA6 儲存到[ebp-50]
6. 7903268E+0=7903268E 儲存到[ebp-4C]
如此迴圈4(E-mail字串位數)次後,再用A1代替E-mail的ASCII碼值做同樣的運算,
共再做4(=8-4)次迴圈運算,最終
[ebp-50]=20FD43A1 (後)
[ebp-4C]=9B8E2CEB (前)
把“”和“”合併起來得到“9B8E2CEB20FD43A1”,這就是我們所需要的註冊碼。
註冊資訊儲存在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\privatestorage\NLCDOWNLOAD鍵值下,刪除即可重複註冊。
誰能幫我寫個序號產生器來?:)
Good LUCK!
Crack007[BCG]
2001-11-26
相關文章
- 我來寫UltraEdit 9.00 簡繁雙語第二版的破解過程,誰來寫序號產生器 (3千字)2002-01-26
- 《中華壓縮 6.01》註冊碼破解及序號產生器 (14千字)2001-08-19
- 音樂處理acoustica2.0註冊碼破解及序號產生器 (8千字)2002-04-06
- Audio compositor註冊碼及序號產生器 (5千字)2002-04-06
- hellfire2000破解過程及序號產生器的編寫(上) (4千字)2001-01-19
- GetSmart暴力破解手記-----有誰願意寫追註冊碼和序號產生器!下載http://sffs.6to23.com
(6千字)2001-02-07HTTP
- NetTerm 4.2.c註冊過程分析及序號產生器制作SBS (6千字)2015-11-15
- ePublisher Gold v1.3 的註冊碼及序號產生器2000-12-03Go
- AlgoLab PtVector的破解及序號產生器的編寫 (17千字)2001-05-04Go
- Universe 1.63註冊碼生成分析及序號產生器原碼(上) (2千字)2001-11-12
- 美萍安全衛士V8.45序號產生器制作分析過程,及序號產生器! (11千字)2001-10-28
- 進位專家註冊演算法分析及序號產生器C原始碼2004-08-19演算法原始碼
- CMailServer V3.2 註冊碼演算法及CrackCode
2000 的序號產生器 (4千字)2001-08-18AIServer演算法
- mIRC v5.81版註冊碼演算法分析和序號產生器編寫2000-12-11演算法
- Quickness 3.1
註冊演算法分析 + 序號產生器原始碼(tc2) (15千字)2003-04-13UI演算法原始碼
- KEYGENNING4NEWBIES #7破解過程+序號產生器 (6千字)2001-08-21
- Beyond Compare 1.9f註冊演算法&序號產生器 (8千字)2002-04-28演算法
- 破解QQ圖形留言器3.0(不是OICQ圖形留言系統)及序號產生器編寫!! (6千字)2001-07-15
- 守財奴1.9註冊分析+序號產生器原始碼2015-11-15原始碼
- Lc3&Lc4
註冊演算法分析及序號產生器的製作2004-06-18演算法
- 鬥地主4.0註冊演算法,序號產生器在OCG論壇
(22千字)2015-11-15演算法
- 檔案密使2.0暴力破解及序號產生器的編寫―好久沒寫過東西了。 (11千字)2001-07-10
- AntiSpy PRO 1.02
註冊演算法分析 + 序號產生器原始碼(tc2) (12千字)2003-04-11演算法原始碼
- 申請加入BCG破文3--加密精靈EncryptGenie22註冊碼破解及序號產生器制作 (5千字)2001-10-28加密
- AddRemove 4GOOD 註冊演算法+序號產生器2003-07-25REMGo演算法
- 蒼鷹象棋1.0
註冊演算法分析和序號產生器2004-05-16演算法
- 一個CrackMe的破解以及序號產生器的製作
(4千字)2001-08-16
- 文書處理大師 3.0 破解~~~附序號產生器 (17千字)2002-03-24
- IrfanView 序號產生器分析(初級版)
(13千字)2015-11-15View
- 社群遊戲伴侶
V1.0註冊碼的計算,序號產生器 (30千字)2003-05-09遊戲
- UltraEdit-32 8.10.1.0的破解及序號產生器的生成 (15千字)2001-05-15
- 印表機監控王
V3.08註冊演算法分析及序號產生器原始碼2015-11-15演算法原始碼
- 網頁加密器(HTMLEncryptor1.1)破解及序號產生器 (1千字)2001-04-22網頁加密HTML
- MobileSearch(手機號碼歸屬地查詢) v2.0註冊演算法,附序號產生器~~~~~~
(30千字)2002-03-29演算法
- Flash Cam 1.79註冊演算法分析與序號產生器制作以及爆破方法
(7千字)2015-11-15演算法
- “我們都愛背單詞”簡易破解及序號產生器的寫法 (608字)2001-04-25
- Kalua Cocktails 1.1完全破解,內附彙編序號產生器(用序號產生器編寫器,並有它的使用教程)
(22千字)2002-02-27AI
- 用DeDe破解 e族百變桌面 V5.1+用DEIPHI5寫序號產生器
(13千字)2002-04-18