題目:小李登錄檔大師 v1.11的註冊以及另類序號產生器的編寫
下載地址:www.csdn.net 中國共享軟體中心
目的:獲取註冊碼,並寫出另類序號產生器。
工具:Trw2000 v1.22
首先用fi檢視一下程式(習慣了),還好,沒加殼。再執行一下程式,看看程式不註冊有哪些限制。該程式不註冊時,啟動的時候會出來一個框,叫你輸入註冊名字和註冊碼。大概瞭解一下後,準備開工了:
方法一:(最常用的方法)
執行程式,輸入註冊名字和隨便輸入註冊碼,Ctrl+N撥出Trw2000,bpx hmemcpy,F5返回,點選註冊,被斷下來後
bc * 清除斷點,pmodule返回程式領空,按F12 8次就報錯,於是重來,按F12 7次,小心來到以下地方:
……
* Possible StringData Ref from Code Obj ->"key"
|
:0047F563 BADCF64700 mov edx,
0047F6DC
:0047F568 E8EB53FDFF call 00454958
:0047F56D A1D0824800 mov eax,
dword ptr [004882D0]
:0047F572 8B00
mov eax, dword ptr [eax]
:0047F574 E83F4DFDFF call 004542B8
:0047F579 8D55F0
lea edx, dword ptr [ebp-10]
:0047F57C 8B83DC020000 mov eax, dword
ptr [ebx+000002DC]
:0047F582 E8B106FBFF call 0042FC38
:0047F587 8B55F0
mov edx, dword ptr [ebp-10]
:0047F58A A1A8804800 mov eax,
dword ptr [004880A8]
:0047F58F 8B00
mov eax, dword ptr [eax]
:0047F591 8B8064030000 mov eax, dword
ptr [eax+00000364]
:0047F597 E848E4FEFF call 0046D9E4
:0047F59C 8D45FC
lea eax, dword ptr [ebp-04]
:0047F59F 8B15A8804800 mov edx, dword
ptr [004880A8]
:0047F5A5 8B12
mov edx, dword ptr [edx]
:0047F5A7 8B9264030000 mov edx, dword
ptr [edx+00000364]
:0047F5AD 8B524C
mov edx, dword ptr [edx+4C] ;<-D EDX可看到真註冊碼
:0047F5B0 E84344F8FF call 004039F8
;**在此中斷,寫另類序號產生器
:0047F5B5 8D55EC
lea edx, dword ptr [ebp-14]
:0047F5B8 8B83E0020000 mov eax, dword
ptr [ebx+000002E0]
:0047F5BE E87506FBFF call 0042FC38
:0047F5C3 8B45EC
mov eax, dword ptr [ebp-14]
:0047F5C6 8B55FC
mov edx, dword ptr [ebp-04]
:0047F5C9 E82247F8FF call 00403CF0
:0047F5CE 755F
jne 0047F62F ;****爆破注意點之一
:0047F5D0 8D55E4
lea edx, dword ptr [ebp-1C]
……
由於程式很簡單,我也不想多講(其實是我對演算法很糊塗,呵呵),下面是另類序號產生器的編寫:
程式名稱:小李登錄檔大師1.11.exe
中斷地址:47F5B0
中斷次數:1
第一位元組:EB
指令長度:5
註冊碼->記憶體方式 EDX
方法二:
考慮到程式啟動肯定也要比較註冊碼的,而且註冊碼放在登錄檔裡,於是我們換個斷點來試試看:
用Trw2000 Load 該程式,下斷點 bpx regqueryvalueexa,F5返回,被斷下來好幾次,小心找到正確斷下來的地方,按F10來到如下地方:
……
* Possible StringData Ref from Code Obj ->"user"
|
:00485CFF BAE05D4800 mov edx,
00485DE0
:00485D04 8B06
mov eax, dword ptr [esi]
:00485D06 E879ECFCFF call 00454984
:00485D0B 8B55EC
mov edx, dword ptr [ebp-14]
:00485D0E 8B8364030000 mov eax, dword
ptr [ebx+00000364]
:00485D14 E8CB7CFEFF call 0046D9E4
:00485D19 8D4DE8
lea ecx, dword ptr [ebp-18]
* Possible StringData Ref from Code Obj ->"key"
|
:00485D1C BAF05D4800 mov edx,
00485DF0
:00485D21 8B06
mov eax, dword ptr [esi]
:00485D23 E85CECFCFF call 00454984
:00485D28 8B45E8
mov eax, dword ptr [ebp-18]
:00485D2B 8B9364030000 mov edx, dword
ptr [ebx+00000364]
:00485D31 8B524C
mov edx, dword ptr [edx+4C] ;<-EDX 為正確的註冊碼
:00485D34 E8B7DFF7FF call 00403CF0
:00485D39 752E
jne 00485D69 ;***爆破注意點之二
:00485D3B 8D4DE0
lea ecx, dword ptr [ebp-20]
……
很簡單吧,另類序號產生器如下(注意:這個序號產生器與前面那個用起來不一樣的,必須得先執行程式,填入註冊碼和註冊碼並點選註冊後才好用,而前面那個可以直接用的):
程式名稱:小李登錄檔大師1.11.exe
中斷地址:485D34
中斷次數:1
第一位元組:EB
指令長度:5
註冊碼->記憶體方式 EDX
********************************
寫完了,好累啊,這兩天共寫了4篇破文,為了加入BCG嘛,再累也不怕,呵呵。希望能對比我更菜的朋友有所幫助,祝大家每天都在進步!