Cel: Browserola 1.01
Co: serial
Czym: W32dasm+SoftICE
Skd: Pc shareware 2/99
Uruchamiamy Browserol. W dolnym rogu napis 'Evaluation Copy'
Zostawmy go i przejdmy do okienka rejestracyjnego proga.
Wpiszmy jaki serial i nicka. I oczywicie otrzymijemy wiadomo podan nam miym gosem przez opalon blondyn
(joke):
'This code does not match'. Zapumy W32dasm i zdisasmujmy proga:
->Disassember/Open File to Disassemble
Nastpnie poszukajmy stringu informujcego nas o bdnym serialu
('This code...'):
->Refs/String Data References
Znajdujemy go i klikamy na nim dwukrotnie. W32dasm wywietli nam kod, odnoszcy si 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
--------------------------------------------------------------
Najbliszy 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 poprawnoci 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, ktra jak przypuszczamy sprawdza nasz serial czyli:
00456CAD
Zakoczmy teraz robot w W32dasm, listing nie bdzie ju potrzebny.
Zaadujmy Browserol do Symbol Loadera. Przy starcie pojawi si warning o braku 
rnych bayerw - zignoruj go i dziaaj dalej. Dobra wskoczy SI - jestemy w
program entry point. Ustawmy breakpointa na nasz prock:
->bpx 456CAD
No i zatrzymalimy si na niej. Sprawdmy 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
Wyjdmy z debuggera i zarejestrujmy proga pamitajc o wpisaniu nicka z poprzedniej prby rejestracji.
(program generuje seriala na podstawie name). Na koniec wyjanienie rozkazu
 mov edx, dword ptr [ebp-08] - wpisz do edx warto o dugoci podwjnego sowa (4 bajty) spod adresu ebp-8.
Jest to rozkaz, ktry przy przepisywaniu danych birze pod uwag PC-towski zapis sw -bajt starszy-bajt modszy.
Jak kto czego NAPRAWD nie rozumie to niech pisze:

				Ptasiek/IND

