VCD Cutter v4.03 |
|
|
|
Program Tipi: Video CD islemleri |
|
|
|
|
|
|
Video CD lerinizi parcalara ayirabilmenizi sagliyor.
|
|
Menuden --> Help --> Register --> Sallama bir isim ve code girelim. Yanlis olduguna dair uyari verdi.
[bpx messageboxa] --> bir daha deneyelim.
0167:0042C5A5 MOV EDX,FF500044 0167:0042C5A9 CALL EBX <-- hata 0167:0042C5AB POP EDI <-- buradayiz
SoftIce in Trace Buffer ozelligini kullanacagiz. [bprw vcdcut t] --> [bpx 42c5A9] --> tekrar deneyelim --> bu sekilde programin nerelere ugradigi bulabilecegiz. Breakpoint calistiktan sonra [show 1] --> yukari dogru cikalim.
... 000019 0167:0041FFB6 MOV CL,DL 000018 0167:0041FFB8 CMP DL,BL <-- ?? 000017 0167:0041FFBA JNZ 0041FFEB <-- ?? 000016 0167:0041FFEB SBB EAX,EAX 000015 0167:0041FFED POP EDI 000014 0167:0041FFEE SBB EAX,-01 000013 0167:0041FFF1 XOR ECX,ECX 000012 0167:0041FFF3 TEST EAX,EAX 000011 0167:0041FFF5 SETZ CL 000010 0167:0041FFF8 POP ESI 00000F 0167:0041FFF9 MOV EAX,ECX 00000E 0167:0041FFFB POP EBX 00000D 0167:0041FFFC ADD ESP,00000208 00000C 0167:00420002 RET 00000B 0167:0042C501 ADD ESP,08 00000A 0167:0042C504 TEST EAX,EAX 000009 0167:0042C506 JZ 0042C58F <-- kotu cocuk 000008 0167:0042C58F PUSH FF 000007 0167:0042C591 CALL [USER32!MessageBeep] 000006 0167:0042C597 MOV EAX,[00486B4C] 000005 0167:0042C59C PUSH 00 000004 0167:0042C59E PUSH 0044BB44 000003 0167:0042C5A3 PUSH 0044BAC0 000002 0167:0042C5A8 PUSH EAX 000001 0167:0042C5A9 CALL EBX <-- hata
Sansimizi 42C506 yi patch ederek deneyince, girdigimiz serialin dogru oldugunu soyledi. Ama kalici bir etki yaratmadi. Peki, biraz ustte 41FFB8 deki karsilastirma da ne oluyor ? [bpx 41FFB8] --> tekrar deneyelim
0167:0041FFAB LEA EAX,[ESP+00000114] <-- [d eax] 0167:0041FFB2 MOV DL,[EAX] <-- ? DL 0167:0041FFB4 MOV BL,[ESI] <-- ? BL 0167:0041FFB6 MOV CL,DL 0167:0041FFB8 CMP DL,BL 0167:0041FFBA JNZ 0041FFEB 0167:0041FFBC TEST CL,CL 0167:0041FFBE JZ 0041FFD6 0167:0041FFC0 MOV DL,[EAX+01] <-- ? DL 0167:0041FFC3 MOV BL,[ESI+01] <-- ? BL 0167:0041FFC6 MOV CL,DL 0167:0041FFC8 CMP DL,BL ...
41FFB2 de [? DL] yazarsak olmasi gereken code un ilk basamagini elde ederiz. [? BL] ise bizim girdigimiz code un ilk basamagidir. Burada kontrol baslamakta ve 41FFD4 den 41FFB2 ye ziplayarak, girdigimiz kodun tamami kontrol edilmektedir. 41FFAB de [d eax] yazinca olmasi gereken kodun tamamini goruruz. Bu sefer KeyGen yazmak icin ugrasmayacagim. Buyuk ihtimalle cok karmasiktir. Onun yerine, programciyi kendi silahi ile vuracagiz. Hata veren MessageBox da olmasi gereken seriali yazdiracagiz.
:0041FF8C lea ecx, dword ptr [esp+00000114] <-- ecx = 0070F140 :0041FF93 push edx :0041FF94 push eax :0041FF95 push 0044A3A8 :0041FF9A push ecx <-- ecx = 0044BAC0 olmali * Reference To: USER32.wsprintfA, Ord:02ACh | :0041FF9B Call dword ptr [0043C310] :0041FFA1 mov esi, dword ptr [esp+0000022C] :0041FFA8 add esp, 00000010 :0041FFAB lea eax, dword ptr [esp+00000114] <-- [d eax] --> dogru serial
41FFAB de iken [d eax] ile dogru seriali bulabilecegimizi yukarida aciklamistim. Su anda serial [0070F140] memory adresinde duruyor. Register degerlerini inceledigimizde bu degere ecx in sahip oldugunu goruyoruz.
* Possible StringData Ref from Data Obj ->"Sorry" | :0042C59E push 0044BB44 * Possible StringData Ref from Data Obj ->"Please make sure your user name " ->"and user code " :0042C5A3 push 0044BAC0 <-- aradigimiz memory bolgesi
Bize hata mesaji yerine dogru serialin soylenmesi icin, WsprintfA fonksiyonunun 0070F140 adresi yerine 0044BAC0 adresine yazmasi gerekir. 41FF8C adresini patch ediyoruz. Hepsi bu kadar. Program "Sorry" diyerek dogru seriali gosteriyor.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.