破解FAQGenie
[軟體簡介]
FAQGenie是一個專門用來作FAQ網頁的軟體。不註冊30天限制。
在www.inhua.com有下載。
[破解工具]
DeDe 2.50
trw2000
W32Dasm
[破解經過]
簡單的發現:
(1) FI報告是Delphi程式。
(2) 啟動軟體,沒有發現輸入註冊碼的地方,只告訴你,NOT LICENSED(沒有註冊)。
用DeDe處理一下,看到下面的東東:
procedure TfrmMain.LogoMouseDown(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X: Integer; Y: Integer);
begin
{
00491158 55
push ebp
00491159 8BEC
mov ebp, esp
0049115B 53
push ebx
0049115C 8BD8
mov ebx, eax
0049115E 80F901
cmp cl, $01
00491161 7523
jnz 00491186
00491163 803D505A490000 cmp
byte ptr [$495A50], $00
0049116A 741A
jz 00491186
0049116C B201
mov dl, $01
* Reference to control TfrmMain.edtRegCode : TEdit
|
0049116E 8B83E8020000 mov
eax, [ebx+$02E8]
* Reference to: controls.TControl.SetVisible(TControl;System.Boolean);
|
00491174 E843CEF9FF call
0042DFBC
00491179 B201
mov dl, $01
* Reference to control TfrmMain.lblRegCode : TLabel
|
0049117B 8B83E4020000 mov
eax, [ebx+$02E4]
* Reference to: controls.TControl.SetVisible(TControl;System.Boolean);
|
00491181 E836CEF9FF call
0042DFBC
00491186 5B
pop ebx
00491187 5D
pop ebp
00491188 C20C
ret $0C
}
end ;
這是什麼?我猜是滑鼠對logo進行操作後,便出現可以輸入註冊碼的東東了。
開始試驗,經過數分鐘的亂試,發現只要先對滾動字元的地方雙擊,然後用滑鼠右鍵點選logo,
註冊碼輸入的地方就顯示出來了。
如何攔住輸入的註冊碼呢?用hmemcpy試了一下,沒成功。
正在苦惱之際,看了一下W32Dasm裡面的stringlist,發現有幾處關於RegCode的地方。這是其中一處。
* Referenced by a CALL at Addresses:
|:0048A371 , :0048A3B8 , :0048A57B , :0048CFF8 , :0048DDBD
|:0048E632 , :00490158 , :00490AD4 , :004911D9
|
:00490B78 55
push ebp
:00490B79 8BEC
mov ebp, esp
:00490B7B 6A00
push 00000000
:00490B7D 6A00
push 00000000
:00490B7F 53
push ebx
:00490B80 56
push esi
:00490B81 33C0
xor eax, eax
:00490B83 55
push ebp
:00490B84 681D0C4900 push
00490C1D
:00490B89 64FF30
push dword ptr fs:[eax]
:00490B8C 648920
mov dword ptr fs:[eax], esp
:00490B8F 33DB
xor ebx, ebx
:00490B91 C705485A49008DECA200 mov dword ptr [00495A48], 00A2EC8D
:00490B9B 8D45FC
lea eax, dword ptr [ebp-04]
:00490B9E 50
push eax
:00490B9F 33C9
xor ecx, ecx
* Possible StringData Ref from Code Obj ->"RegCode"
|
:00490BA1 BA340C4900 mov edx,
00490C34
* Possible StringData Ref from Code Obj ->"Software\Virdi Software\FAQGenie"
|
:00490BA6 B8440C4900 mov eax,
00490C44
:00490BAB E8F04BFFFF call
004857A0
:00490BB0 B201
mov dl, 01
* Possible StringData Ref from Code Obj ->"TBase64SVt釀瓚?3畦?Ft?
->"潁?d?"
|
<------ 註冊碼變成base64編碼後放入登錄檔裡面去?
:00490BB2 A1808C4800 mov eax,
dword ptr [00488C80]
:00490BB7 E81881FFFF call
00488CD4
:00490BBC 8BF0
mov esi, eax
:00490BBE 8D4DF8
lea ecx, dword ptr [ebp-08]
:00490BC1 8B55FC
mov edx, dword ptr [ebp-04]
:00490BC4 8BC6
mov eax, esi
:00490BC6 E86584FFFF call
00489030
:00490BCB 8BC6
mov eax, esi
:00490BCD E8CE21F7FF call
00402DA0
:00490BD2 33D2
xor edx, edx
:00490BD4 8B45F8
mov eax, dword ptr [ebp-08]
:00490BD7 E86C73F7FF call
00407F48
:00490BDC A34C5A4900 mov dword
ptr [00495A4C], eax <------ ? eax可以看見假註冊碼
:00490BE1 A1485A4900 mov eax,
dword ptr [00495A48]
:00490BE6 3B054C5A4900 cmp eax, dword
ptr [00495A4C] <------ ? eax就是真註冊碼了。假的和真的作比較。
:00490BEC 7514
jne 00490C02
:00490BEE A1105A4900 mov eax,
dword ptr [00495A10]
:00490BF3 8B8048040000 mov eax, dword
ptr [eax+00000448]
:00490BF9 B201
mov dl, 01
:00490BFB E8BCD3F9FF call
0042DFBC
:00490C00 B301
mov bl, 01
輸入註冊碼後,需要退出程式然後重新進入,就會發現是註冊版了。