|
Alto MP3 Maker v3.10 |
|
amois |
|
Program Tipi: MP3 Ripper |
|
Araçlar:
SoftICE, W32Dsm |
|
|
|
|
Audio CD den MP3 yapan guzel bir program.
|
Yazı |
Menu --> Register
--> Name =
amois_fb, Code=123456 sallama degerleri girelim. Bekledigimiz uzere hata verdi.
[bpx messageboxa] --> tekrar deniyoruz --> [F12]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042B3A1(U)
|
:0042B3A8 test eax, eax
:0042B3AA je 0042B3F1
:0042B3AC push FFFFFFFF
:0042B3AE push 00000000
* Possible Reference to String Resource ID=57687: "Sorry! the register code is
invalid!"
|
:0042B3B0 push 0000E157
* Reference To: MFC42.Ordinal:04AF, Ord:04AFh
|
:0042B3B5 Call 00454FDE
:0042B3BA mov eax, dword ptr [esp+18]
<-- Buradayiz
Buraya buyuk ihtimalle 42B3A1 den gelmis bulunuyoruz.
:0042B375 mov eax, dword ptr [esp+10]
:0042B379 mov esi, ebp
<-- [d eax]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042B39D(C)
|
:0042B37B mov dl, byte ptr [eax]
<-- r H 0 ...
:0042B37D mov bl, byte ptr [esi]
<-- 1 3 5
:0042B37F mov cl, dl
:0042B381 cmp dl, bl
:0042B383 jne 0042B3A3
:0042B385 test cl, cl
:0042B387 je 0042B39F
:0042B389 mov dl, byte ptr [eax+01]
<-- H U A ...
:0042B38C mov bl, byte ptr [esi+01]
<-- 2 4 6
:0042B38F mov cl, dl
:0042B391 cmp dl, bl
:0042B393 jne 0042B3A3
:0042B395 add eax, 00000002
:0042B398 add esi, 00000002
:0042B39B test cl, cl
:0042B39D jne 0042B37B
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042B387(C)
|
:0042B39F xor eax, eax
:0042B3A1 jmp 0042B3A8
Evet, 42B3A1 in biraz yukarisinda bir karsilastirma bolumu var gibi. [bpx
42B37B] -->
Manual olarak 42B383 ve 42B393 de JUMP yapmayi engellersek, girmemiz gereken seriali buluruz. Cunku, DL girmemiz gerekeni, BL ise girdigimiz degeri gosteriyor.
42B379 da [d eax] ile girmemiz gereken serialin butununu gorebiliriz.
Bu bolumun hemen yukarisinda ise, baska bir karsilastirma daha oluyor aslinda.
:0042B33E mov eax, dword ptr
[esp+14]
:0042B342 mov esi, ebp
<--[d eax]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042B366(C)
|
:0042B344 mov dl, byte ptr [eax]
<-- 1 4 5 ...
:0042B346 mov bl, byte ptr [esi]
<-- 1 3 5
:0042B348 mov cl, dl
:0042B34A cmp dl, bl
:0042B34C jne 0042B36C
:0042B34E test cl, cl
:0042B350 je 0042B368
:0042B352 mov dl, byte ptr [eax+01]
<-- 3 1 0 ...
:0042B355 mov bl, byte ptr [esi+01]
<-- 2 4 6
:0042B358 mov cl, dl
:0042B35A cmp dl, bl
:0042B35C jne 0042B36C
:0042B35E add eax, 00000002
:0042B361 add esi, 00000002
:0042B364 test cl, cl
:0042B366 jne 0042B344
Bu bolumde de, girdigimiz sallama deger bir karsilastirma islemine giriyor. Demek ki, 2 tane gecerli serial var.
42B342 de iken [d eax] ile serialin tamamini gorebiliriz.
Hata mesaji yerine gecerli serialleri gostermeye calisalim. Bu is icin MessageBoxA yi kullanacagiz. Fonksiyonu cagirmadan once 4 degerin PUSH edilmesi gerekiyor.
int MessageBox(
HWND hWnd,
// handle of owner window
<-- 0
LPCTSTR lpText,
// address of text in message box
<-- Serial 2
LPCTSTR lpCaption, // address of title of message box
<-- Serial 1
UINT uType
// style of message box
<-- 0
);
Kullanmamiz gereken LPCTSTR degerleri, serialin offset degerleri olmali. MessageBox in Title bolumunde ilk seriali, mesaj bolumunde de ikinci seriali gosterecegiz. Diger 2 degeri 0 olarak girecegiz. Cunku, amacimiz cok basit bir MessageBox ile isimizi halletmek. Yalnizca OK dugmesi olacak. Bu nedenle style olarak 0 seciyoruz. HWND degerimiz de 0. Cunku MessageBox imiz, baska bir objenin uzantisi degil.
42B342 de iken [d eax] ile birinci seriali gorebiliyorduk. Burada eax =
[esp+14].
42B379 da iken [d eax] ile ikinci seriali gorebiliyorduk. Burada eax =
[esp+10].
Su sekilde bir patch yapilabilir.
0167:0042B375 MOV EAX,[ESP+10]
<-- serial 2
0167:0042B379 MOV ECX,[ESP+14]
<-- serial 1
0167:0042B37D PUSH 00
<-- MessageBox Type
0167:0042B37F PUSH ECX
<-- Title
0167:0042B380 PUSH EAX
<-- Mesaj
0167:0042B381 PUSH 00
<-- HWND
0167:0042B383 CALL USER32!MessageBoxA
0167:0042B388 JMP 0042B3BA
<-- Hata sonrasina git
Simdi programimiz hata yerine, gecerli 2 adet serial gosteriyor. Birinci seriali girersek bu bolume ugramayacagiz. Cunku patch yazdigimiz bolum, ikinci serialin kontrol edildigi bolumu iptal etmis oldu. Ozetle, dogru serial girersek "Registered", yanlis serial girersek de dogrusunu gormus olacagiz.
"Bundan iyisi Sham'da kaysi".
Neden 2 ayri serial oldugunu bilmiyorum. Belki programin ozellikleri girilen serial'a gore degisiyordur.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.