小李登錄檔大師 v1.41 註冊演算法分析--獻給 LILITH 和解密演算法初學者 (10千字)
小李登錄檔大師 v1.41 註冊演算法分析--獻給 LILITH 和解密演算法初學者
作者:PaulYoung ( 屬於 China Cracking Group )
難度:0 級 (共分 10 級,0 級最易)
軟體:小李登錄檔大師 v1.41
下載:http://www.csdn.net/soft/openfile.asp?kind=1&id=14499 ( 456 KB
)
簡介:看軟體名就知道幹啥用的了
工具:SoftICE V4.05
日期:2001.11.07
************************************************************************************************
今天,“理你死”??!!哦……不是,是“LILITH”(MM ?! :)~ No, 靚仔一名 :( ),在看雪論壇發篇關於小李登錄檔大師
v1.41 的註冊碼 D 註冊碼大法,可惜此兄太懶,不願跟演算法,無奈,就讓我這個當師父的來代勞吧。
這個軟體是明碼比較,非常傻瓜的那種,如何取註冊碼, LILITH 兄已經說得非常清楚了,在此我就省略那些無關枝節吧,重點分析它的註冊演算法。
Let's Go!! 想學演算法的 Cracker 們!
為方便大家理解,以我的註冊序列號" 1D6D-17E5 "和輸入的使用者名稱是" CCG "為例,說說這個軟體的註冊演算法。跟蹤法請看 LILITH 大俠的文章
:) 。
== 1 ==
* Possible StringData Ref from Code Obj ->"key"
|
:00490EF1 BAD4104900 mov edx,
004910D4
:00490EF6 E88562FEFF call 00477180
:00490EFB A1D4034A00 mov eax,
dword ptr [004A03D4]
:00490F00 8B00
mov eax, dword ptr [eax]
:00490F02 E8D95BFEFF call 00476AE0
:00490F07 8D55E8
lea edx, dword ptr [ebp-18]
:00490F0A A1EC024A00 mov eax,
dword ptr [004A02EC]
:00490F0F 8B00
mov eax, dword ptr [eax]
:00490F11 E88673F7FF call 0040829C
//取序列號"1D6D-17E5"
:00490F16 8D45E8
lea eax, dword ptr [ebp-18]
:00490F19 50
push eax
:00490F1A 8D55E4
lea edx, dword ptr [ebp-1C]
:00490F1D 8B83DC020000 mov eax, dword
ptr [ebx+000002DC]
:00490F23 E89403FAFF call 004312BC
:00490F28 8B55E4
mov edx, dword ptr [ebp-1C]
:00490F2B 58
pop eax
:00490F2C E8372EF7FF call 00403D68
//取使用者名稱"CCG"
:00490F31 8B45E8
mov eax, dword ptr [ebp-18]
:00490F34 8D55EC
lea edx, dword ptr [ebp-14]
:00490F37 E86875F7FF call 004084A4
//把序列號小寫和使用者名稱連成一串"1d6d-17e5CCG"
:00490F3C 8B55EC
mov edx, dword ptr [ebp-14]
:00490F3F A174014A00 mov eax,
dword ptr [004A0174]
:00490F44 8B00
mov eax, dword ptr [eax]
:00490F46 8B8064030000 mov eax, dword
ptr [eax+00000364]
:00490F4C E8EB2DFEFF call 00473D3C
//開始計算,F8跟進
:00490F51 8D45FC
lea eax, dword ptr [ebp-04] //下面都是些老掉牙的東東,不用多說
:00490F54 8B1574014A00 mov edx, dword
ptr [004A0174]
:00490F5A 8B12
mov edx, dword ptr [edx]
:00490F5C 8B9264030000 mov edx, dword
ptr [edx+00000364]
:00490F62 8B524C
mov edx, dword ptr [edx+4C]
:00490F65 E80E2CF7FF call 00403B78
:00490F6A 8D55E0
lea edx, dword ptr [ebp-20]
:00490F6D 8B83E0020000 mov eax, dword
ptr [ebx+000002E0]
:00490F73 E84403FAFF call 004312BC
:00490F78 8B45E0
mov eax, dword ptr [ebp-20]
:00490F7B 8B55FC
mov edx, dword ptr [ebp-04]
:00490F7E E8ED2EF7FF call 00403E70
:00490F83 7567
jne 00490FEC
:00490F85 8D55D8
lea edx, dword ptr [ebp-28]
:00490F88 8B83DC020000 mov eax, dword
ptr [ebx+000002DC]
:00490F8E E82903FAFF call 004312BC
:00490F93 8B4DD8
mov ecx, dword ptr [ebp-28]
:00490F96 8D45DC
lea eax, dword ptr [ebp-24]
* Possible StringData Ref from Code Obj ->"小李登錄檔大師已經註冊給"
|
:00490F99 BAE0104900 mov edx,
004910E0
== 2 ==
:00473D3C 55
push ebp
:00473D3D 8BEC
mov ebp, esp
:00473D3F 83C4F8
add esp, FFFFFFF8
:00473D42 53
push ebx
:00473D43 56
push esi
:00473D44 33C9
xor ecx, ecx
:00473D46 894DF8
mov dword ptr [ebp-08], ecx
:00473D49 8955FC
mov dword ptr [ebp-04], edx
:00473D4C 8BD8
mov ebx, eax
:00473D4E 8B45FC
mov eax, dword ptr [ebp-04]
:00473D51 E8BE01F9FF call 00403F14
:00473D56 33C0
xor eax, eax
:00473D58 55
push ebp
:00473D59 68E33D4700 push 00473DE3
:00473D5E 64FF30
push dword ptr fs:[eax]
:00473D61 648920
mov dword ptr fs:[eax], esp
:00473D64 33F6
xor esi, esi
:00473D66 8D4350
lea eax, dword ptr [ebx+50]
:00473D69 8B55FC
mov edx, dword ptr [ebp-04]
:00473D6C E8C3FDF8FF call 00403B34
:00473D71 8B4350
mov eax, dword ptr [ebx+50]
:00473D74 E8E7FFF8FF call 00403D60
//取字串"1d6d-17e5CCG"長度,儲存到 eax
:00473D79 85C0
test eax, eax
:00473D7B 7E20
jle 00473D9D
:00473D7D 8B4350
mov eax, dword ptr [ebx+50]
:00473D80 E8DBFFF8FF call 00403D60
//取字串"1d6d-17e5CCG"長度,儲存到 eax
:00473D85 85C0
test eax, eax
:00473D87 7C14
jl 00473D9D
:00473D89 40
inc eax // eax+1 ,即字串長度加1,就是下面的迴圈次數
:00473D8A 33D2
xor edx, edx // edx 初始值為 0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00473D9B(C)
|
:00473D8C 8B4B50
mov ecx, dword ptr [ebx+50] //載入字串
:00473D8F 0FB64C11FF movzx ecx,
byte ptr [ecx+edx-01] //依次取字串以ASCII形式儲存到 ecx ,第一次迴圈值為0
:00473D94 03F1
add esi, ecx
//與上一次迴圈後得到的累加值相加
:00473D96 037354
add esi, dword ptr [ebx+54] //當前字元 ASCII 值 + 57791
:00473D99 42
inc edx
// edx 遞增
:00473D9A 48
dec eax
// eax 即迴圈次數遞減
:00473D9B 75EF
jne 00473D8C
// eax>0 ?未算完,繼續吧…… :(
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00473D7B(C), :00473D87(C)
|
:00473D9D 8D55F8
lea edx, dword ptr [ebp-08]
:00473DA0 8BC6
mov eax, esi //把累加值"752094"放到 eax
:00473DA2 E87D48F9FF call 00408624
:00473DA7 FF7344
push [ebx+44]
:00473DAA FF75F8
push [ebp-08]
:00473DAD FF7348
push [ebx+48]
:00473DB0 8D45F8
lea eax, dword ptr [ebp-08]
:00473DB3 BA03000000 mov edx,
00000003 //把 edx 置值為3,即下面迴圈的次數
:00473DB8 E86300F9FF call 00403E20
//再次運算,F8進入
:00473DBD 8D434C
lea eax, dword ptr [ebx+4C]
== 3 ==
:00403E20 53
push ebx
:00403E21 56
push esi
:00403E22 52
push edx
:00403E23 50
push eax
:00403E24 89D3
mov ebx, edx
:00403E26 31C0
xor eax, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403E34(C)
|
:00403E28 8B4C9410 mov
ecx, dword ptr [esp+4*edx+10] -----
:00403E2C 85C9
test ecx, ecx
|
:00403E2E 7403
je 00403E33
|
:00403E30 0341FC
add eax, dword ptr [ecx-04] |迴圈 3 次,
|在"752094"前後分別
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|加上"8" , "2"
|:00403E2E(C)
|
|
|
:00403E33 4A
dec edx //迴圈次數遞減 |
:00403E34 75F2
jne 00403E28 -----------------------
:00403E36 E869FDFFFF call 00403BA4
:00403E3B 50
push eax
:00403E3C 89C6
mov esi, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403E53(C)
|
:00403E3E 8B449C14 mov
eax, dword ptr [esp+4*ebx+14] -------------
:00403E42 89F2
mov edx, esi
|
:00403E44 85C0
test eax, eax
|
:00403E46 740A
je 00403E52
|
:00403E48 8B48FC
mov ecx, dword ptr [eax-04]
|
:00403E4B 01CE
add esi, ecx
|再迴圈3次,
:00403E4D E8F6EAFFFF call 00402948
|檢查註冊碼格式
|
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|
|:00403E46(C)
|
|
|
:00403E52 4B
dec ebx //迴圈次數遞減
|
:00403E53 75E9
jne 00403E3E-----------------------------------
:00403E55 5A
pop edx
:00403E56 58
pop eax
:00403E57 85D2
test edx, edx
:00403E59 7403
je 00403E5E
:00403E5B FF4AF8
dec [edx-08]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403E59(C)
|
:00403E5E E8D1FCFFFF call 00403B34
//至此,正確的註冊碼已經生成!
:00403E63 5A
pop edx
:00403E64 5E
pop esi
:00403E65 5B
pop ebx
:00403E66 58
pop eax
:00403E67 8D2494
lea esp, dword ptr [esp+4*edx]
:00403E6A FFE0
jmp eax
:00403E6C C3
ret
演算法總結:
1、軟體取你的硬碟序列號並轉換成十六進位制,然後在中間加上"-",作為你的註冊序列號(此步可忽略);
2、將你的註冊序列號轉換成小寫並與使用者名稱組成一個字串;
3、將字串的每個字元都轉換成 ASCII ,並逐個迴圈與 57791 相加並將每次的值累加,迴圈次數是字串長度加一,初次迴圈的累加值為 57791
,直到取完所有字元為止,如以"1d6d-17e5CCG"為例,計算公式為:57791+(49+57791)+(100+57791)+(54+57791)+(100+57791)+(45+57791)+(49+57791)+(55+57791)+(101+57791)+(53+57791)+(67+57791)+(67+57791)+(71+57791)=(49+100+54+100+45+49+55+101+53+67+67+71)+(13*57791)=752094
4、最後,再在752094前後分別加上8、2,變成 87520942 ,就是正確的序列號了。
是不是好弱智???序號產生器就有勞偽裝者[CCG]教大家如何寫了,還有我,呵……
相關文章
- 演算法分析: <獻給初學者>
之一 (4千字)2002-06-06演算法
- 演算法分析: <獻給初學者>
之四 (9千字)2002-06-06演算法
- 演算法分析:
<獻給初學者> 之二 (7千字)2002-06-07演算法
- 申請加入CNCG破文-小李登錄檔大師D註冊碼法 (2千字)2001-11-07
- 學演算法的看過來 》》》演算法分析:
<獻給初學者> 之五 (5千字)2002-06-07演算法
- Gif2Swf2.1註冊演算法分析 特別獻給CNCG組織 (13千字)2001-10-28演算法
- ReadBook v1.41註冊碼演算法,供參考! (1千字)2001-03-31演算法
- 獻給UNIX的初學者2012-03-08
- 飛馬魔法桌布V3.0註冊演算法(適合初學者) (7千字)2001-11-25演算法
- ChinaZip v2.0的註冊碼演算法(初學者)2000-11-30演算法
- RegEditor登錄檔修改器 1.2註冊演算法簡析2015-11-15演算法
- UltraEdit-32
10註冊碼演算法分析 (19千字)2003-05-17演算法
- FolderView 1.7
註冊演算法分析 (14千字)2015-11-15View演算法
- 獻給初學者(高手也看看) 破解 Cpukiller 2.0 (1千字)2000-09-17
- 再談小李登錄檔大師 v1.11的註冊以及另類序號產生器的編寫 -高手莫進 (4千字)2001-10-07
- HappyEO電子琴3.05標準版註冊演算法分析(重啟驗證,簡單,給初學者)2015-11-15APP演算法
- 重新貼過註冊演算法分析 (16千字)2001-10-23演算法
- EffeTech HTTP Sniffer 3.2註冊演算法分析 (5千字)2002-06-24HTTP演算法
- Green Tea 2.60註冊碼演算法分析 (3千字)2000-07-17演算法
- supercleaner註冊演算法分析2015-11-15演算法
- 註冊碼演算法 (2千字)2001-01-14演算法
- 五筆輸入通1.x註冊演算法分析
(10千字)2015-11-15演算法
- SuperCleaner 2.31註冊碼演算法分析 - OCG (13千字)2002-04-02演算法
- Registry Crawler 4.0註冊碼演算法分析 - OCG
(20千字)2002-04-07演算法
- 完美解除安裝6.0註冊演算法分析 (2千字)2002-02-27演算法
- Directory Scanner v1.5 註冊演算法分析 (6千字)2015-11-15演算法
- MouseStar V3.01註冊演算法分析 (18千字)2015-11-15演算法
- **********.exe註冊碼演算法分析--高手莫笑 (31千字)2015-11-15演算法
- SpeedFlash註冊演算法分析(VB)2015-11-15演算法
- 獻給初學者(高手也點評點評!!)KoolMoves V1.33的破解!!
(10千字)2000-09-16
- 給初學者,因為我就是個初學者(1) (3千字)2000-05-03
- 給初學者,因為我就是個初學者(2) (1千字)2000-05-03
- 給初學者,因為我就是個初學者(4) (1千字)2000-05-03
- 給TAE!的小禮物---對DISKdata v3.3.2註冊演算法的分析 (14千字)2001-07-13演算法
- Screen Demo Maker
V3.0註冊演算法分析 (8千字)2002-09-10演算法
- Konvertor 3.03的註冊碼演算法模組的分析
(7千字)2015-11-15演算法
- Magic convertor 2.8註冊碼演算法分析
- OCG (9千字)2015-11-15演算法
- CoolClock V1.02註冊演算法分析 ---OCG (14千字)2015-11-15演算法