ChinaZip v2.0的註冊碼演算法(初學者)
ChinaZip v2.0的註冊碼演算法(初學者)
很少寫破解心得,不足之處請指正。
為什麼要選擇ChinaZip呢?因為ChinaZip的演算法比較簡單,非常適合初學者。
能讓每一個初學者都能學會如何分析註冊碼的演算法,寫出序號產生器。(是誰在笑我...)^o^
由於本文是針對初學者,所以下面的破解過程我儘量寫的詳細一些。
軟體介紹:
中華壓縮(ChinaZip) V2.0
中華壓縮是一個國產的壓縮、解壓縮軟體,暫時只支援 zip 壓縮格式,
正式版本將逐步支援RAR,ARJ,CAB 等更多的壓縮格式。軟體的介面、操作習慣、
程式快捷鍵將完全相容 WinZip。
下載地:
http://www.soft999.com/download2/ChinaZip.exe
軟體保護:
1.Aspack1.07b
2.註冊碼保護
-----------------
使用工具:
1.UnAspack v1.0.9.1
2.Trw2000 v1.22
3.W32dsm v8.9黃金版
4.Crackcode2000
5.VB 5.0
-------------------------
現在開始破解嘍!...............
1.首先執行ChinaZip.exe
2.在幫助選單下找到註冊部分
3.使用者名稱:dyiyd(你可輸入你的名字)
註冊碼:98989898
4.按確定後出現“您的註冊碼不正確!” (這可是破解的線索哦!)
5.將ChinaZip.exe用UnAspack v1.0.9.1脫殼(有興趣的朋友可手動脫殼。我比較懶....^o^)
6.w32dsm v8.9黃金版載入已脫殼的ChinaZip.exe
7.搜尋“您的註冊碼不正確”字串。很快便找到了....
8.下面開始靜態分析...從“您的註冊碼不正確!”向上看
---------------------------------------
* Possible StringData Ref from Code Obj ->"?]"
|
:004D1DD3 68D51E4D00 push 004D1ED5
:004D1DD8 64FF30
push dword ptr fs:[eax]
:004D1DDB 648920
mov dword ptr fs:[eax], esp
:004D1DDE A1CC6D4E00 mov eax,
dword ptr [004E6DCC]
:004D1DE3 8B00
mov eax, dword ptr [eax]
:004D1DE5 8B10
mov edx, dword ptr [eax]
:004D1DE7 FF92D8000000 call dword ptr
[edx+000000D8]
:004D1DED 48
dec eax
:004D1DEE 0F85B6000000 jne 004D1EAA
:004D1DF4 8D55FC
lea edx, dword ptr [ebp-04]
:004D1DF7 A1CC6D4E00 mov eax,
dword ptr [004E6DCC]
:004D1DFC 8B00
mov eax, dword ptr [eax]
:004D1DFE 8B80E0020000 mov eax, dword
ptr [eax+000002E0]
:004D1E04 E87F10F6FF call 00432E88----------------------------/*取出你輸入的使用者名稱*/
:004D1E09 8D4DF8
lea ecx, dword ptr [ebp-08]
:004D1E0C 8B55FC
mov edx, dword ptr [ebp-04]--------------/*[ebp-04]存放是你的使用者名稱*/
:004D1E0F 8BC3
mov eax, ebx
:004D1E11 E8D6FDFFFF call 004D1BEC----------------------------/*註冊碼計算部分*/
:004D1E16 8D55F4
lea edx, dword ptr [ebp-0C]
:004D1E19 A1CC6D4E00 mov eax,
dword ptr [004E6DCC]
:004D1E1E 8B00
mov eax, dword ptr [eax]
:004D1E20 8B80E4020000 mov eax, dword
ptr [eax+000002E4]
:004D1E26 E85D10F6FF call 00432E88----------------------------/*取出你輸入的註冊碼*/
:004D1E2B 8B45F4
mov eax, dword ptr [ebp-0C]--------------/*[ebp-0C]存放你輸入的註冊碼*/
:004D1E2E 8B55F8
mov edx, dword ptr [ebp-08]--------------/*[ebp-08]存放真正的註冊碼*/
:004D1E31 E89A22F3FF call 004040D0----------------------------/*這個Call一定是註冊碼比較處*/
:004D1E36 7568
jne 004D1EA0-----------------------------/*我們來到這裡。哈哈!有點兒意思了吧?*/
/*這裡要跳就跳過了所有註冊成功的資訊*/
:004D1E38 A1306F4E00 mov eax,
dword ptr [004E6F30]
:004D1E3D 8B00
mov eax, dword ptr [eax]
:004D1E3F 8B8008040000 mov eax, dword
ptr [eax+00000408]
:004D1E45 B201
mov dl, 01
:004D1E47 E89CB3FDFF call 004AD1E8
:004D1E4C 8D55F0
lea edx, dword ptr [ebp-10]
:004D1E4F A120704E00 mov eax,
dword ptr [004E7020]
:004D1E54 8B00
mov eax, dword ptr [eax]
:004D1E56 E8E1EEF7FF call 00450D3C
:004D1E5B 8D45F0
lea eax, dword ptr [ebp-10]
* Possible StringData Ref from Code Obj ->" - 註冊使用者!"
|
:004D1E5E BAEC1E4D00 mov edx,
004D1EEC
:004D1E63 E86021F3FF call 00403FC8
:004D1E68 8B55F0
mov edx, dword ptr [ebp-10]
:004D1E6B A1306F4E00 mov eax,
dword ptr [004E6F30]
:004D1E70 8B00
mov eax, dword ptr [eax]
:004D1E72 E84110F6FF call 00432EB8
:004D1E77 6A40
push 00000040
* Possible StringData Ref from Code Obj ->"註冊成功!"
|
:004D1E79 B9FC1E4D00 mov ecx,
004D1EFC
* Possible StringData Ref from Code Obj ->"謝謝您的寶貴支援."
|
:004D1E7E BA081F4D00 mov edx,
004D1F08
:004D1E83 A120704E00 mov eax,
dword ptr [004E7020]
:004D1E88 8B00
mov eax, dword ptr [eax]
:004D1E8A E8E1F4F7FF call 00451370
:004D1E8F A174F05000 mov eax,
dword ptr [0050F074]
:004D1E94 C7803402000001000000 mov dword ptr [ebx+00000234], 00000001
:004D1E9E EB0A
jmp 004D1EAA
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1E36(C)--------------------------------------------------------------/*注意這個偏移地址,向上找到此偏移地址*/
|
* Possible StringData Ref from Code Obj ->"您的註冊碼不正確!"
|
:004D1EA0 B8241F4D00 mov eax,
004D1F24
:004D1EA5 E84661F8FF call 00457FF0
--------------------------------------------------------
9.到現在為止我們只要知道這個Call
:004D1E31 E89A22F3FF call 004040D0----------------------------/*這個Call一定是註冊碼比較處*/
如果用Trm2000跟蹤的話,按F8進入
:004040D0 53
push ebx
:004040D1 56
push esi
:004040D2 57
push edi
:004040D3 89C6
mov esi, eax
:004040D5 89D7
mov edi, edx
:004040D7 39D0
cmp eax, edx----------------------------/*這是註冊碼的比較核心
eax是你輸入的註冊碼
edx是真正的註冊碼
(下面我們可用這個地方用
CRACKCODE2000做個序號產生器)*/
:004040D9 0F848F000000 je 0040416E
:004040DF 85F6
test esi, esi
:004040E1 7468
je 0040414B
:004040E3 85FF
test edi, edi
:004040E5 746B
je 00404152
:004040E7 8B46FC
mov eax, dword ptr [esi-04]
:004040EA 8B57FC
mov edx, dword ptr [edi-04]
:004040ED 29D0
sub eax, edx
:004040EF 7702
ja 004040F3
:004040F1 01C2
add edx, eax
10.執行Trw2000,在執行ChinaZip.exe重複2、3步
11.按Ctrl-N撥出Trw2000
下斷點bpx 4d1e31
按確定後程式立刻被Trw2000接管
下命令d edx 哈哈你看到什麼?......註冊碼?^_^
至此我們已經知道了註冊碼,但是這並不是我們的最終目的。我們是想知道他是如何計算出來的?往下看吧^_^
12.重複10步.....
下斷點bpx 004D1E11 我們來到這裡
:004D1E09 8D4DF8
lea ecx, dword ptr [ebp-08]
:004D1E0C 8B55FC
mov edx, dword ptr [ebp-04]--------------/*[ebp-04]存放是你的使用者名稱*/
:004D1E0F 8BC3
mov eax, ebx
:004D1E11 E8D6FDFFFF call 004D1BEC----------------------------/*註冊碼計算部分*/
:004D1E16 8D55F4
lea edx, dword ptr [ebp-0C]
:004D1E19 A1CC6D4E00 mov eax,
dword ptr [004E6DCC]
:004D1E1E 8B00
mov eax, dword ptr [eax]
按F8進入call 004D1BEC來到
* Referenced by a CALL at Address:
|:004D1E11
|
:004D1BEC 55
push ebp
:004D1BED 8BEC
mov ebp, esp
:004D1BEF 6A00
push 00000000
:004D1BF1 6A00
push 00000000
:004D1BF3 6A00
push 00000000
:004D1BF5 6A00
push 00000000
:004D1BF7 6A00
push 00000000
:004D1BF9 6A00
push 00000000
:004D1BFB 6A00
push 00000000
:004D1BFD 53
push ebx
:004D1BFE 56
push esi
:004D1BFF 57
push edi
:004D1C00 894DF8
mov dword ptr [ebp-08], ecx
:004D1C03 8955FC
mov dword ptr [ebp-04], edx
:004D1C06 8B45FC
mov eax, dword ptr [ebp-04]
:004D1C09 E86625F3FF call 00404174
:004D1C0E 33C0
xor eax, eax
:004D1C10 55
push ebp
* Possible StringData Ref from Code Obj ->"?^]U?
|
:004D1C11 68D41C4D00 push 004D1CD4
:004D1C16 64FF30
push dword ptr fs:[eax]
:004D1C19 648920
mov dword ptr fs:[eax], esp
:004D1C1C 33F6
xor esi, esi
:004D1C1E 8D45F4
lea eax, dword ptr [ebp-0C]
:004D1C21 8B55FC
mov edx, dword ptr [ebp-04]
:004D1C24 E8AF21F3FF call 00403DD8
:004D1C29 8B45F4
mov eax, dword ptr [ebp-0C]
:004D1C2C E88F23F3FF call 00403FC0-----------------------------/*確定註冊碼的長度*/
:004D1C31 8BF8
mov edi, eax------------------------------/*將註冊碼的長度(Eax)作為迴圈次數
儲存在Edi當中*/
:004D1C33 85FF
test edi, edi
:004D1C35 7E57
jle 004D1C8E------------------------------/*檢查使用者名稱是否為空值若是則跳*/
:004D1C37 BB01000000 mov ebx,
00000001-------------------------/*將Ebx賦值1(表示弟1次迴圈)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1C8C(C)
|
:004D1C3C 8B45F4
mov eax, dword ptr [ebp-0C]---------------/*將使用者名稱取出*/
:004D1C3F 8A4418FF mov
al, byte ptr [eax+ebx-01]-------------/*將第1位的AscII碼取出,結果儲存在al中*/
:004D1C43 E858FFFFFF call 004D1BA0-----------------------------/*判斷該AscII中的數是否為素數(我們將在下面詳解)*/
:004D1C48 84C0
test al, al-------------------------------/*若是al=1 若不是al=0*/
:004D1C4A 7425
je 004D1C71-------------------------------/*al=0跳轉*/
:004D1C4C 8D45E8
lea eax, dword ptr [ebp-18]
:004D1C4F 8B55F4
mov edx, dword ptr [ebp-0C]
:004D1C52 8A541AFF mov
dl, byte ptr [edx+ebx-01]
:004D1C56 E88D22F3FF call 00403EE8-----------------------------/*
:004D1C5B 8B45E8
mov eax, dword ptr [ebp-18]
:004D1C5E 8D55EC
lea edx, dword ptr [ebp-14]
:004D1C61 E8166DF3FF call 0040897C-----------------------------/*這三個Call將素數提出並且轉換成大寫*/
:004D1C66 8B55EC
mov edx, dword ptr [ebp-14]
:004D1C69 8D45F0
lea eax, dword ptr [ebp-10]
:004D1C6C E85723F3FF call 00403FC8-----------------------------/*
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1C4A(C)
|
:004D1C71 83FB01
cmp ebx, 00000001-------------------------/*比較是否為第1次迴圈*/
:004D1C74 740A
je 004D1C80-------------------------------/*若是第1次迴圈則跳轉*/
:004D1C76 8B45F4
mov eax, dword ptr [ebp-0C]---------------/*將使用者名稱轉移到Eax中*/
:004D1C79 0FB64418FE movzx eax,
byte ptr [eax+ebx-02]----------/*取出1位AscII碼*/
:004D1C7E EB06
jmp 004D1C86------------------------------/*無條件轉移到004D1C86*/
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1C74(C)
|
:004D1C80 8B45F4
mov eax, dword ptr [ebp-0C]---------------/*將使用者名稱轉移到Eax中*/
:004D1C83 0FB600
movzx eax, byte ptr [eax]-----------------/*將使用者名稱第1位的AscII碼移到Eax中*/
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1C7E(U)
|
:004D1C86 8D748612 lea
esi, dword ptr [esi+4*eax+12]---------/*[esi+4*eax+12]是註冊碼的計算公式
計算結果儲存在Esi當中*/
:004D1C8A 43
inc ebx-----------------------------------/*當前迴圈次數+1*/
:004D1C8B 4F
dec edi-----------------------------------/*總迴圈次數-1*/
:004D1C8C 75AE
jne 004D1C3C------------------------------/*edi不等於0轉移*/
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1C35(C)
|
:004D1C8E 8D55E4
lea edx, dword ptr [ebp-1C]
:004D1C91 8BC6
mov eax, esi------------------------------/*將Esi中的運算結果移至Eax中*/
:004D1C93 E8A870F3FF call 00408D40
:004D1C98 8B4DE4
mov ecx, dword ptr [ebp-1C]
:004D1C9B 8D45F4
lea eax, dword ptr [ebp-0C]
:004D1C9E 8B55F0
mov edx, dword ptr [ebp-10]
:004D1CA1 E86623F3FF call 0040400C-----------------------------/*將運算結果轉換成字串
將上面AscII碼為素數的字母+字串
這就是註冊碼*/----終於算完了^o^
:004D1CA6 8B45F8
mov eax, dword ptr [ebp-08]
:004D1CA9 8B55F4
mov edx, dword ptr [ebp-0C]
:004D1CAC E8E320F3FF call 00403D94
:004D1CB1 33C0
xor eax, eax
:004D1CB3 5A
pop edx
:004D1CB4 59
pop ecx
:004D1CB5 59
pop ecx
:004D1CB6 648910
mov dword ptr fs:[eax], edx
* Possible StringData Ref from Code Obj ->"_[迕jjS乩h"
|
:004D1CB9 68DB1C4D00 push 004D1CDB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1CD9(U)
|
:004D1CBE 8D45E4
lea eax, dword ptr [ebp-1C]
:004D1CC1 BA05000000 mov edx,
00000005
:004D1CC6 E89920F3FF call 00403D64
:004D1CCB 8D45FC
lea eax, dword ptr [ebp-04]
:004D1CCE E86D20F3FF call 00403D40
:004D1CD3 C3
ret---------------------------------------/*退出子程式*/
至於判斷是否為素數的演算法也很簡單:
按F8進入 call 004D1BA0
* Referenced by a CALL at Address:
|:004D1C43
|
:004D1BA0 55
push ebp
:004D1BA1 8BEC
mov ebp, esp
:004D1BA3 51
push ecx
:004D1BA4 53
push ebx
:004D1BA5 56
push esi
:004D1BA6 8845FF
mov byte ptr [ebp-01], al
:004D1BA9 C645FD02 mov
[ebp-03], 02
:004D1BAD C645FE01 mov
[ebp-02], 01
:004D1BB1 8A4DFF
mov cl, byte ptr [ebp-01]
:004D1BB4 49
dec ecx
:004D1BB5 80E902
sub cl, 02
:004D1BB8 722A
jb 004D1BE4
:004D1BBA 41
inc ecx
:004D1BBB B302
mov bl, 02--------------------------------/*bl=2*/
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1BE2(C)
|
:004D1BBD 33C0
xor eax, eax
:004D1BBF 8A45FF
mov al, byte ptr [ebp-01]-----------------/*將使用者名稱的1位AscII碼移至al*/
:004D1BC2 33D2
xor edx, edx
:004D1BC4 8AD3
mov dl, bl--------------------------------/*將Bl-->dl*/
:004D1BC6 8BF2
mov esi, edx------------------------------/*將edx-->esi*/
:004D1BC8 33D2
xor edx, edx------------------------------/*edx清零(異或)*/
:004D1BCA F7F6
div esi-----------------------------------/*eax/esi結果儲存在eax餘數儲存在edx*/
:004D1BCC 85D2
test edx, edx-----------------------------/*檢查是否有餘數*/
:004D1BCE 7503
jne 004D1BD3------------------------------/*若有則跳*/
:004D1BD0 FE45FD
inc [ebp-03]
* Referenced by a (U)nconditional or (C)onditional Jump
at Address:
|:004D1BCE(C)
|
:004D1BD3 807DFD02
cmp byte ptr [ebp-03], 02
:004D1BD7 7606
jbe 004D1BDF
:004D1BD9 C645FE00
mov [ebp-02], 00
:004D1BDD EB05
jmp 004D1BE4
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1BD7(C)
|
:004D1BDF 43
inc ebx----------------------------------/*edx+1*/
:004D1BE0 FEC9
dec cl
:004D1BE2 75D9
jne 004D1BBD-----------------------------/不等於0跳*/
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004D1BB8(C), :004D1BDD(U)
|
:004D1BE4 8A45FE
mov al, byte ptr [ebp-02]
:004D1BE7 5E
pop esi
:004D1BE8 5B
pop ebx
:004D1BE9 59
pop ecx
:004D1BEA 5D
pop ebp
:004D1BEB C3
ret
大家基本上看明白了吧?
將使用者名稱的一位AscII碼提出/2 /3 /4 /5.........如果能被他本身整除即為素數....
總結一下演算法:
如:使用者名稱是adyiyd(為什麼要加一個a呢?)^o^一會兒就知道了。
字串: a d y i
y d
AscII: 61 64 79 69
79 64
十進位制: 97 100 121 105 121 100
註冊碼=SN
a為素數--->A(將他提出)---(原來a的ASCII碼是個素數)^_^
SN=A+((97*4+18)*2+(100*4+18)+(121*4+18)+(105*4+18)+(121*4+18))----(為什麼第一位*2最後一位沒有算呢?大家看看上邊就清楚了)
SN=A2672
整理一下:
使用者名稱: adyiyd
註冊碼: A2672
我們一起寫一個序號產生器....
第一種方法:
用Crackcode2000(具體用法請參考看雪主頁裡RuFeng教程)
CRACKCODE.INI中加入
[Options]
CommandLine=ChinaZip.exe
Mode=2
First_Break_Address=4D1E31
First_Break_Address_Code=E8
First_Break_Address_Code_Lenth=5
Second_Break_Address=4040D7
Second_Break_Address_Code_Lenth=2
Save_Code_Address=EDX
第二種方法:
因為本文針對的是初學者,所以用VB編制序號產生器
原始碼如下....
Private Sub Command1_Click()
Dim Sum As Long '第二部分總數
Dim StrString As String '第一部分字串
Dim Strfull As String '輸入的使用者名稱
Dim StrPassWord As String '處理後的密碼
Dim StrSingle As Integer '單獨處理的字元的ASC碼值
Dim intLen As Integer '使用者名稱長度
Dim I As Integer, J As Integer
Dim flgFrist As Boolean '標示是否為第一次迴圈
StrString = ""
Sum = 0
'初始化為第一次迴圈
flgFrist = True
intLen = Len(Text1(0).Text)
If intLen <= 1 Then
MsgBox "請輸入英文字元", vbInformation, "提示"
With Text1(0)
.SelStart = 0
.SelLength = Len(.Text)
.SetFocus
End With
Exit Sub
End If
'處理第二部分數字累加
For I = 1 To intLen - 1
StrSingle = Asc(Mid(Text1(0).Text, I))
'輸入中文提示
If StrSingle < 0 Then
MsgBox "請輸入英文字元", vbInformation,
"提示"
With Text1(0)
.SelStart = 0
.SelLength = Len(.Text)
.SetFocus
End With
'如果為中文,則退出迴圈
Exit Sub
End If
Sum = Sum + StrSingle * 4 + 18
Next I
StrSingle = Asc(Mid(Text1(0).Text, 1))
Sum = Sum + StrSingle * 4 + 18
'累加和處理結束
StrPassWord = Trim(Str(Sum))
'處理第一部分字元連線
For I = 1 To intLen
StrSingle = Asc(Mid(Text1(0).Text, I))
J = 2
Do While StrSingle Mod J <> 0
If StrSingle = CLng(J) Then
Exit Do
End If
J = J + 1
Loop
If StrSingle = CLng(J) Then
StrString = StrString & UCase(Chr(StrSingle))
End If
Next I
Text1(1).Text = Trim(StrString) & Trim(StrPassWord)
With Text1(1)
.SelStart = 0
.SelLength = Len(.Text)
.SetFocus
End With
End Sub
注:本程式沒有對中文字元進行處理
這種方法雖然笨一些,但是非常清楚。還是看不懂得朋友看看我家的注視吧!
寫了這麼多,手已經麻了。還希望大家能夠滿意
希望和大家多多交流!多提寶貴意見!^_^
序號產生器我的網頁可以下載到
http://dyiyd.yeah.net
dyiyd@yeah.net
相關文章
- 初學者請進,看far.exe的註冊碼! (7千字)2001-04-24
- 飛馬魔法桌布V3.0註冊演算法(適合初學者) (7千字)2001-11-25演算法
- Python初學者手冊(14)2020-10-26Python
- Instant Source 註冊演算法分析+註冊器原始碼2015-11-15演算法原始碼
- 用NuMega SmartCheck 6.03獲取魔裝網神2.5的註冊碼(初學者請進)
(1千字)2001-02-24
- HappyEO電子琴3.05標準版註冊演算法分析(重啟驗證,簡單,給初學者)2015-11-15APP演算法
- keygenning4newbies
keygenme #3 註冊演算法,雖然說是初學者的crackme,可是 (9千字)2001-08-18演算法
- 小李登錄檔大師 v1.41 註冊演算法分析--獻給 LILITH 和解密演算法初學者 (10千字)2001-11-09演算法解密
- 註冊碼演算法 (2千字)2001-01-14演算法
- LanSee 註冊演算法2015-11-15演算法
- 註冊碼演算法入門!----菜鳥篇2015-11-15演算法
- 初學者的迷茫2018-02-07
- 初學者的想法2011-10-17
- 初學者如何閱讀原始碼?2020-09-17原始碼
- Emeditor 註冊碼2017-08-14
- WebStorm註冊碼2014-04-29WebORM
- 初學者Mybatis的初級使用2018-11-19MyBatis
- 財智老闆通3.04註冊版---註冊演算法分析2003-03-16演算法
- MobileSearch(手機號碼歸屬地查詢) v2.0註冊演算法,附序號產生器~~~~~~
(30千字)2002-03-29演算法
- supercleaner註冊演算法分析2015-11-15演算法
- Java初學者容易犯的程式碼錯誤2019-01-24Java
- Pandas初學者程式碼優化指南2017-11-23優化
- 讓註冊碼直接顯示在輸入框裡面。給跟我同樣是初學者的朋友一點思路~
(4千字)2015-11-15
- java 初學者的疑惑!!!2007-11-20Java
- java初學者的疑惑2008-03-18Java
- PhpStorm註冊碼2020-04-07PHPORM
- Navicat for MySQL註冊碼2020-04-07MySql
- SecureCRT 7 註冊碼2016-09-02Securecrt
- Konvertor 3.03的註冊碼演算法模組的分析
(7千字)2015-11-15演算法
- 初學者指南2017-09-09
- 初學者 (轉)2007-10-31
- SWF Browser的註冊演算法 (874字)2001-10-26演算法
- 《給初學者的Windows Vista的補遺手冊》之0812007-04-21Windows
- System Mechanic 3.6b(一個簡單的對抗SOFT-ICE軟體)註冊碼破解(初學者快快看哦)
(3千字)2001-05-14
- SpeedFlash註冊演算法分析(VB)2015-11-15演算法
- 即時語音提示 &
校對軟體InsTalk註冊碼及序號產生器-初學者請看 (24千字)2002-04-13
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊2019-03-03原始碼
- C#實現無法破解的軟體註冊碼演算法2013-02-22C#演算法