破解FAQGenie (4千字)

看雪資料發表於2001-04-10

破解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

輸入註冊碼後,需要退出程式然後重新進入,就會發現是註冊版了。

相關文章