Cel : Browserola 1.01 Co : serial Czym: W32dasm+SoftICE Skad: Pc shareware 2/99
Uruchamiamy Browserole. W dolnym rogu napis 'Evaluation Copy' Zostawmy go i przejdzmy do okienka rejestracyjnego proga. Wpiszmy jakis serial i nicka. I oczywiscie otrzymijemy wiadomosc podana nam milym glosem przez opalona blondyne (joke): 'This code does not match'. Zapuscmy W32dasm i zdisasmujmy proga: ->Disassember/Open File to Disassemble Nastepnie poszukajmy stringu informujacego nas o blednym serialu ('This code...'): ->Refs/String Data References Znajdujemy go i klikamy na nim dwukrotnie. W32dasm wyswietli nam kod, odnoszacy sie do tego stringu.
:00456CCC BAA06D4500 mov edx, 00456DA0
:00456CD1 8B83B0010000 mov eax, dword ptr [ebx+000001B0]
:00456CD7 E8A08FFDFF call 0042FC7C
:00456CDC EB0A jmp 00456CE8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00456CB2(C)
|
* Possible StringData Ref from Code Obj ->"The code does not match. Please "
->"check your user name and registration "
->"number and try again."
|
:00456CDE B8B86D4500 mov eax, 00456DB8
:00456CE3 E878A4FDFF call 00431160
Najblizszy skok do tego stringu jest z adresu 00456CB2. Zajrzyjmy tam ->Goto/Goto Code Location
:00456C8F 8B83B0010000 mov eax, dword ptr [ebx+000001B0] :00456C95 E8E28FFDFF call 0042FC7C :00456C9A EB4C jmp 00456CE8 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:00456C57(C), :00456C67(C) | :00456C9C 8D55F0 lea edx, dword ptr [ebp-10] :00456C9F 8B45FC mov eax, dword ptr [ebp-04] :00456CA2 E88DEFFFFF call 00455C34 :00456CA7 8B45F0 mov eax, dword ptr [ebp-10] :00456CAA 8B55F8 mov edx, dword ptr [ebp-08] :00456CAD E856CBFAFF call 00403808 sprawdzanie poprawnosci seriala :00456CB2 752A jne 00456CDE Skok do BAD procki :00456CB4 C6050887460002 mov byte ptr [00468708], 02 :00456CBB 8B1504874600 mov edx, dword ptr [00468704] :00456CC1 8B83D0010000 mov eax, dword ptr [ebx+000001D0] :00456CC7 E830CAFBFF call 004136FC
Zapiszmy adres procki, która jak przypuszczamy sprawdza nasz serial czyli: 00456CAD Zakonczmy teraz robote w W32dasm, listing nie bedzie juz potrzebny. Zaladujmy Browserole do Symbol Loadera. Przy starcie pojawi sie warning o braku róznych bayerów - zignoruj go i dzialaj dalej. Dobra wskoczyl SI - jestesmy w program entry point. Ustawmy breakpointa na nasza procke:
->bpx 456CAD
No i zatrzymalismy sie na niej. Sprawdzmy ostatnie modyfikowane rejestry czyli eax i edx - w jednym z nich jest adres do naszego seriala, a w drugim do poprawnego:
->d eax ->d edx
Wyjdzmy z debuggera i zarejestrujmy proga pamietajac o wpisaniu nicka z poprzedniej próby rejestracji. (program generuje seriala na podstawie name). Na koniec wyjasnienie rozkazu mov edx, dword ptr [ebp-08] - wpisz do edx wartosc o dlugosci podwójnego slowa (4 bajty) spod adresu ebp-8. Jest to rozkaz, który przy przepisywaniu danych birze pod uwage PC-towski zapis slów -bajt starszy-bajt mlodszy.
Ptasiek/IND