Hmm.. witam w kolejnym odcinku naszej telenoweli. Na warsztat tym razem wezmiemy moze niezbyt znany programik (rzadko pojawia sie na polskich CoverCD), ale nawet jesli go nie masz mozesz przejrzec ten tutorial, aby co nieco sie dowiedziec o innych programach niz SoftIce :-)
Postaramy sie znalezc prawidlowe dane rejestracyjne do tego programu, bez ingerencji w kod, a nastepnie wygenerujemy odpowiedniego patcha. Jest to dosc duzo roboty, ale w ten sposob otrzymamy w pelni prawidlowo zarejestrowany produkt. Do pracy niezbedne beda nastepujace narzedzia:
- SoftIce - hmmm, chyba go masz.. :-))))
- WinRoute Pro - zajmuje 400kb, jest na TUCOWS - lub dowolny inny serwer proxy, co to takiego wyjasnie pozniej
- FileMon - program sledzi wszystkie odwolania do plikow
- RegMon - program sledzi odwolania do rejestru
Dwa ostatnie programy zajmuja po 30kb i mozna je znalezc na wiekszosci stron poswieconych crackowaniu.
Po odpaleniu programu widzimy klasyke, 30-days evaluation i nasza ulubiona opcje w menu: "Apply registration code". Widzimy trzy pola. Do pierwszego 'Username' wpisujemy 'McKiler/CrackPL'99'. Do drugiego np. '54321'. E-mail: 'billg@microsoft.com'.
Tradycyjne pulapki nie dzialaja gdyz program jest napisany w Delphi. Skorzystamy wiec z pulapki 'bpx hmemcpy'. Teraz czeka nas cierpliwe wciskanie klawiszy F12, F10,F8. Dopiero w 3 (jest ich 7) wywolaniu hmemcpy dochodzimy do bardzo ciekawego momementu. Na nastepny raz mozna od razu wpisac BPX 015F:00404129.
[...] 015F:00404123 7426 JZ 0040414B (NO JUMP) 015F:00404125 8B0E MOV ECX,[ESI] 015F:00404127 8B1F MOV EBX,[EDI] 015F:00404129 39D9 CMP ECX,EBX
Hmm... bardzo znajome porownanie. Sprawdzmy co jest pod ecx, a co pod edx. Wartosci wygladaja na jakies smieci. Ale to nie sa smieci. Popatrzmy dokladnie co SI nam pokazuje po wpisaniu '? ebx'.
32333435 0842216501 "2345"
A wiec wartosc po przeliczeniu na ASCII to fragment naszego wpisanego seriala, tyle ze odwrotnie wpisanego. Natomiast pod ecx mamy:
5A235848 1512265800 "Z#AB"
Czy musze cokolwiek wyjasniac? Chyba wszyscy widza co jest grane... Idziemy dalej. Jako ze programik juz chce nam wywalic ze kod nieprawidlowy, a to jeszcze nie jest caly kod, idziemy dalej po drodze zmieniajac flagi
015F:0040412B 7558 JNZ 00404185 (JUMP (0x19)) :r fl z 015F:0040412D 4A DEC EDX 015F:0040412E 7415 JZ 00404145 (JUMP (0x19)) :r fl z 015F:00404130 8B4E04 MOV ECX,[ESI+04] 015F:00404133 8B5F04 MOV EBX,[EDI+04] 015F:00404136 39D9 CMP ECX,EBX
No i mamy nastepne porownanie.
:? ecx 0000585A 0000022618 "XZ" :? ebx 00CC0031 0013369393 "E 1"
Teraz sklecimy z tego kod.
2345 - Z#AB, czyli 5432 - BA#Z
1. (ten smiec pojawil sie bo nasz kod mial za malo liter) - XZ, czyli .1 - ZX
A wiec 54321 CMP BA#ZZX
Hmm, wpisales kod i nie dziala? Nie ma tak latwo, musisz sam go znalezc, ten tutaj jest troche zmieniony :)
Wylaczamy pulapki, wpisujemy jeszcze raz dane i yyyeeeaahh !!!! Kod prawidlowy! O nie! Nie tak szybko. Program teraz chce wyslac e-mail potwierdzajacy do producenta. Oczywiscie nie damy mu tego zrobic (jesli czytasz to tylko dla kodow rejestracyjnych, to zmykaj stad, a jesli wyslesz ten e-mail to otrzymasz odpowiedz od firmy i to raczej nieprzyjemna). Skad mozemy wiedziec co ten programik doczepia do tej wiadomosci, moze nawet wycinac nasze id z rejestru. Nigdy, przenigdy nie wolno wysylac seriali do producenta programu! No, chyba ze chcesz go ostrzec przed kiepskim zabezpiczeniem. Wracamy do programu. Jak mozna sie domyslic program chce jedynie WYSLAC e-mail, nie chce nic w zamian. Mozemy wiec go "przekonac" zeby taki e-mail wyslal. Zapewne juz ostrzysz sobie w32dasm, ale nie bedzie on tutaj potrzebny. Teraz wyjasnie pojecie serwera mail proxy. Takie cos dziala jak "posrednik" przy wysylaniu poczty. Po podaniu go jako serwera smtp (serwer ktory zajmuje sie wysylaniem poczty), nasz program wysle e-maila wg wszelkich regul! A gdzie go wysle? Bezpiecznie do folderu na naszym dysku! Swietny programik, WinRoute Pro, moze dzialac jako mail proxy. Uruchamiamy w nim te usluge, wysylamy z dowolnego programu pocztowego jakakolwiek wiadomosc (musimy w konfiguracji konta jako serwer SMTP podac 127.0.0.1 - jest to adres lokalny kompa) i widzimy ze zostaje ona zapisana w folderze WinRoute Pro. Podobnie robimy z naszym programem. Pyta sie on o nasz serwer STMP (wieeelkie dzieki dla autorow programu, niezmiernie nam tym ulatwiaja prace hehe), wpisujemy 127.0.0.1 i programik wysyla sobie e-mail! I to juz koniec! Mamy zarejestrowany program i to wedlug wszelkich wytycznych autora. Z ciekawosci mozna podejrzec co programik wysyla do autorow. Uff, niby nic tam nie bylo, tylko kod rejestracyjny, zadnych danych z naszego komputera, ale po co ryzykowac. Dobra, zarejestrowalismy program, ale co zrobic jesli chcemy np. Przeinstalowac system czy przeniesc program na inny komputer. Przeciez za kazdym razem nie bedziemy wysylac e-maila do autorow. Trzeba znalezc wiec miejsce gdzie program zapisuje dane rejestracyjne. W rejestrze nic komenda Find nie znajdziemy, w plikach tez nic, przesukiwanie tez nic nie daje. Czyli program zapisuje gdzies dane zakodowane. Tutaj z pomoca przychodza programy RegMon oraz FileMon. FileMon (bez Bonifacego hehe) pokazuje mnostwo smieci, patrzymy tylko na te ktore sa wywolane przez nasz program (FTP Control), jednak w tych plikach ktore otwiera (sa to tylko jego pliki konfiguracyjne) nic nie znajdujemy. Czas na RegMona. Tutaj wpisow ktore moga nas zainteresowac jest znacznie mniej, a najbardziej podejrzanym wydaje sie wpis w kluczu
[HKEY_CURRENT_USER\SOFTWARE\Windows]
Odpalamy regedit.exe i widzimy tam dwie wartosci:
[HKEY_CURRENT_USER\SOFTWARE\Windows\ActUser] [HKEY_CURRENT_USER\SOFTWARE\Windows\ActKey]
Sa w nich "jakies" smieci. Zapisujemy sobie ten klucz do pliku *.reg i kasujemy go z rejestru. Hurra! Program znowu nie jest zarejestrowany. A wiec ten plik *.reg to po prostu dzialajaca rejestracja. Jeszcze jedna uwaga na sam koniec. Po tym wszystkim musisz wejsc do panelu sterowania -> dodaj/usun programy i wybrac TransSoft FTP Control. Tak bedzie lepiej dla wszystkich.
Pozdrowienia dla calego CrackPL oraz "sympatykow" !