Loupe by Bart

Program Loupe sluzy do powiekszania fragmentow obrazu nad ktorym znajdzie sie kursor myszy. Aby znalezc s/n:

1.Uruchamiamy Loupe i przechodzimy do okna rejestracyjnego

2.Wpisujemy swoje dane ja wpisalem name:Bart org: key:987

3.Wchodzimy do SoftIca(CTRL+D) zakladamy pulapli na pobieranie tekstu z okienek dialogowych bpx GetWindowTextA.Wychodzimy z SoftIca i klikamy OK.

4.Poniewaz sa 3 pola tekstowe naciskamy 2 razy F5 a za trzecim razem F11.

5.Naciskamy F10 az znajedziemy sie w miejscu

:00405CC3 E8B87D0000              call 0040DA80 <--procedura obliczajaca nasz beta serial
:00405CC8 83C404                  add esp, 00000004
:00405CCB 3D92A71901              cmp eax, 0119A792<--porownanie seriali
:00405CD0 7518                    jne 00405CEA

Pod adresem 00405CCB sprawdzany jest beta serial dla uzytkownika Gregory Braun i organizacji Software Design (autor programu).W tym monencie mozemy zmienic zawartosc rejestru eax tak aby zawierala wartosc 0119A792.Piszemy r eax=0119A792.Klikamy F5.Wow zarejestrowane.Hmm ale na kogo,na Gregory Braun.

6.Aby znalezc serial dla swoich danych postepujemy tak jak punktach 1-4 pomijajac 5.Nastepnie naciskamy F10, az znajdziemy sie w miejscu

:00405D07 3BC5                    cmp eax, ebp<--porownanie seriali
:00405D09 741E                    je 00405D29 <--skok do dobry serial

Pod adresem 00405D07 znajduje sie porownanie seriali, pod eax siedzi prawdziwy serial a pod ebp prowadzony przez nas.Teraz wystarczy tylko ?eax i dla mnie wyglada to tak

name:Bart
org :
key :2893284084

7.Patchowanie.Program mozna latwo spatchowac aby dal sie rejestrowac dla kazdego klucza. Zamiast cmp eax,ebp nalezaloby zmienic to na cmp eax,eax wtedy wynik porownania bylby zawsze pozytywny.Sprawdzamy teraz co sie kryje pod adresem 00405D29(skok z 00405D09)

:00405D29 896E64                  mov dword ptr [esi+64], ebp <--zapamietanie seriala
:00405D2C EB07                    jmp 00405D35

Pod adresem 00405D29 zapamietywany jest nasz serial(ten wprowadzony). Nalezy to zmienic namov dword ptr [esi+64], eax tak zeby zapamietywany byl prawdziwy serial Uwaga!Dane rejestracyjne zapisywane sa do rejestru a program co start sprawdza ich poprawnosc,dlatego musimy zapamietac prawdziwy serial bo juz za drugim uruchomieniem programu nie bylby on zarejstrowany(mam nadzieje ze rozumiecie o co biega bo ja juz troche nie ;)).Po takich zmianach program dziala bez zarzutu a po zarejestrowaniu mozemy sprawdzic jaki jest nasz serial w rejestrze w kluczu HKEY_CURRENT_USER\SOFTWARE\Software by Design\Screen Loupe for Windows 95/NT\Registration.

8.Przykladowy program moglby wygladac tak

program patch;
uses crt;
Const
A:Array[0..1] of Record
 A:LongInt;
 B:Byte;
End=
((A:$5108;B:$C0),      {cmp eax,eax                }
 (A:$512A;B:$46));     {mov dword ptr [esi+64], ebp}

Var Ch:Char;I:Byte;F:File;

Begin
writeln('-======================================¬');
writeln('¦  Crack for Loupe ver 4.3 by Bart 99  ¦');
writeln('L======================================-');

 Assign(F,'Loupe.exe'); {<-------------- filename to be patched}
 {$I-} Reset(F,1); {$I+}
 If IOResult <> 0 then
    begin
writeln('-======================================¬');
writeln('¦       ERROR:File not found           ¦');
writeln('L======================================-');
    halt(1);
    end;
 For I:=0 to 1 do
 Begin
  Seek(F,A[I].A);
  Ch:=Char(A[I].B);
  Blockwrite(F,Ch,1);
 End;
 
writeln('-======================================¬');
writeln('¦     File successfully patched!       ¦');
writeln('L======================================-');
End.

9.I to by bylo na tyle.Czesc!