Registry Crawler 4.0.0.3
下載:漢化補丁: http://www.hanzify.org/skipli/chinese/HAC-RCrawler4003-Fire.zip
破解工具:TRW2000 HIEW W32DASM RH ULTRAEDIT
我今天從硬碟翻出一個軟體Registry Crawler,發現沒有註冊,但是演算法又比較複雜,要跟比較長時間這個軟體又是明碼比較,所以我就用SetWindowTextA顯示出來,這樣直接輸入註冊名按解鎖軟體自動顯示註冊碼在,註冊碼的TEXT裡面,看起來感覺瞞不錯的。又用ULTRAEDIT修改了一下出錯以後顯示的對話方塊,哇,赫然一個序號產生器。註冊成功想重新註冊請刪掉HKEY_LOCAL_MACHINE\Software\4Developers\RCrawler\4D這個鍵值
就可以重新註冊了~
:0040AEDE 6800714400
push 00447100
:0040AEE3 E95AC20300
jmp 00447142 (原本是LEA ECX,DWORD PTR [ESI+00000380])
:0040AEE8 90
nop 我把把跳轉到底下儲存控制程式碼的記憶體的儲存地址,以便等下顯示使用。
:0040AEE9 E8E02A0200 call
0042D9CE 軟體所有設定視窗的標題文字都呼叫這裡,所以我們有現成的。
:0042D9CE 8B4138
mov eax, dword ptr [ecx+38]
:0042D9D1 85C0
test eax, eax
:0042D9D3 751D
jne 0042D9F2
:0042D9D5 FF742404
push [esp+04]
:0042D9D9 FF711C
push [ecx+1C]
* Reference
To: USER32.SetWindowTextA, Ord:025Eh 設定視窗的標題文字或控制元件的內容的API
:0042D9DC FF1524864400 Call dword ptr
[00448624]
:0042D9E2 EB0E
jmp 0042D9F2
:0042D9E4 8B10
mov edx, dword ptr [eax]
:0042D9E6 FF742404 push
[esp+04]
:0042D9EA 8BC8
mov ecx, eax
:0042D9EC FF9280000000
call dword ptr [edx+00000080]
* Referenced by a (U)nconditional
or (C)onditional Jump at Addresses:
|:0042D9D3(C), :0042D9E2(U)
|
:0042D9F2 C20400
ret 0004
:0040AE00 8D442414
lea eax, dword ptr [esp+14] 把註冊碼移入EAX,D EAX就可以看到正確的註冊碼
:0040AE04 E909C30300 jmp
00447112 跳轉我的程式碼就是顯示出註冊碼的
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00447133(U)
|
:0040AE09 50
push eax
:0040AE0A E801570100
call 00420510 這個CALL就是比較註冊碼的
:00447112 50
push eax
:00447113 51
push ecx
:00447114 52
push edx
堆疊儲存一定要注意不然很容易非法操作
:00447115 50
push eax
EAX 裡面是註冊碼
:00447116 8B0D708D4500
mov ecx, dword ptr [00458D70]
:0044711C 85C9
test ecx, ecx
由於註冊成功以後每次啟動都比較一次註冊碼所以都要
執行我們的程式碼,所以我測試控制程式碼是否存在,來達到不
執行底下那個CALL,不然如註冊成功後執行會出錯。
:0044711E 740A
je 0044712A
:00447120
E8A968FEFF call 0042D9CE
呼叫這個CALL 把註冊碼顯示出來
:00447125 E901000000
jmp 0044712B
* Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:0044711E(C)
|
:0044712A 58
pop eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00447125(U)
|
:0044712B 5A
pop edx
:0044712C 59
pop ecx
:0044712D
58
pop eax
:0044712E 6810E64500
push 0045E610
:00447133 E9D13CFCFF
jmp 0040AE09
:00447138 00000000000000000000 BYTE 10 DUP(0)
* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:0040AEE3(U)
|
:00447142 8D8E80030000
lea ecx, dword ptr [esi+00000380] 儲存控制程式碼的記憶體的儲存地址
:00447148 50
push eax
:00447149 B8708D4500
mov eax, 00458D70
:0044714E 8908
mov dword ptr [eax], ecx
:00447150 58
pop eax
:00447151 E9933DFCFF
jmp 0040AEE9
總的感覺就是對軟體DIY,就是堆疊好搞好最重要,其他我不知道。我是初級菜鳥,不敢亂說話。
但是總的感覺有些軟體用這樣做序號產生器還是瞞實用的。