Program: Faraon PL
Zadanie: usuniecie CD-CHECK'a
Cracker: Mietor /AAOCG/
Skad: zapytaj znajomego pirata :) 
Narzedzia: W32Dasm 8.93, Dos Navigator 1.50

Tekst zostal napisany na podstawie wersji, ktora mialem na dysku 
(instalka), a ktora zostala skopiowana z plyty CD, wiec nie wiem 
nic o ewentualnych zabezpieczeniach przed kopiowaniem.
Piszac ten tekst chodzilo mi tylko i wylacznie o usuniecie 
CD-CHECK'a.

Gra pochodzi z SIERRY i zostala spolszczona, ale komunikaty 
odpowiedzialne za sprawdzanie wielu rzeczy nie do konca.
O tym przekonacie sie w trakcie czytania.

Instalujemy gre, wybieramy pelna instalacje. Dosc dlugo sie instaluje,
ale fajnie, ze podczas instalacji zmieniaja sie tla :) Gierka jest
dosyc fajna, strategia, ktorej akcja toczy sie w starozytnym Egipcie. 
Po zakonczeniu instalacji wyjmujemy plytke z napedu. 
Uruchamiamy gre i ... pojawia sie MessageBox "Prosze wlozyc plyte 
z gra do napedu CD". Zdziwieni??? Chyba nie.
No to wlaczamy W32Dasm i dekompilujemy plik (Disasssembler / 
Open File to Disassemble).

Po zakonczeniu tego procesu ukaze nam sie kod asm. 
Jesli pojawilyby sie wam dziwne znaczki, znaczy to, ze musicie 
ustawic odpowiednia czcionke (Disassembler/Font/Select Font).
Polecam takze zapisac ten kod (Disassembler/Save Disassembly Text 
File), wtedy jak cos wam nie wyjdzie przy crackowaniu, np. bedzie 
jeszcze jedno zabezpieczenie, ktore omineliscie,
to juz nie bedziecie musieli od nowa dekompilowac pliku wykonywalnego.

Gra wyswietlila komunikat i ... to byl jej blad :))) 
Klikamy przycisk Strn Ref (String Data References) i szukamy czegos 
podobnego do wyswietlonego komunikatu. Po chwili znajdujemy ciag 
"Prosz". Tak, tak, to wyglada bardzo podobnie do naszego komunikatu.  
Klikamy wiec go. Zostaniemy przeniesieni do odpowiedniego fragmentu 
kodu. Jesli jeszcze raz klikniecie ten string to i tak wrocicie w to 
samo miejsce, co swiadczy o tym, ze dany string jest obecny tylko raz 
w kodzie programu.
Znalezlismy sie w linii 322870 na stronie 3844 z 6431. Skad to wiem???
Zobaczcie na belke na dole. Tam macie najwazniejsze informacje.
Szczegolnie zasluguje na uwage ciag w hex'ach oznaczony jako Offset.
Jak juz bedziemy we wlasciwym miejscu, to dzieki niemu bedziemy mogli 
pozniej przerobic plik exe.

Idzmy pare linijek wyzej - mamy tam cos takiego: Referenced by a CALL
at Addresses, a pod tym 5 adresow. Z tych adresow nastapilo wywolanie
do miejsca, w ktorym jestesmy. Sprawdzimy teraz pierwszy z nich.
Wiec z menu Goto wybieramy Goto Code Location i w pojawiajacym sie 
okienku wpisujemy 0040FB73 i naciskamy OK.
Znalezlismy sie w miejscu wywolania. Idziemy pare linijek w gore.
Wow! Co zobaczylismy? Troche wyzej zielony napis "ERR: Could 
not detect Pharaoh CD !!!". I co??? Przetlumaczono ten komunikat, ale
i tak wszystko reszta zwiazane z tym nie zostalo zmienione. 
Wiec musimy podazac sladem tego komunikatu.

Zauwazcie ze kawalek wyzej mamy :0040FB41 7562 jne 0040FBA5.
Jest to skok przed wyswietleniem informacji o braku plyty.
Najezdamy wiec na ta linijke i wybieramy przycisk Jump To.
Musimy przeciez sprawdzic gdzie to nas zaprowadzi. I co?
Jestesmy na linijce 25668 a ponizej mamy "Possible StringData 
Ref from Data Obj -> "Pharaoh_MM.eng", a potem inne.
Wg mnie rozszerzenie eng jest skrotem od engine, czyli jakby
srodowisko w tlumaczeniu. W pliku mozna znalezc przetlumaczone teksty,
ktore opisuja elementy gry itp. Wiec jesli to bedzie sie ladowac to 
raczej bedzie wszystko OK. Jesli mi nie wierzycie to wezcie jakis
dosowy edytor, polecam DosNavigator, i sprawdzcie :)))
Zobaczylismy juz i ... klikamy przycisk Ret Jump (powracamy do miejsca, 
z ktorego skoczylismy dzieki przyciskowi jump).
Z naszych obserwacji wynika, ze jesli w wyniku porownania
(cmp edi, ebx)  okaze sie, ze w rejestrach siedza rozne wartosci
to program zacznie ladowac gre (jne - skok jesli nie jest rowne -
not equal). A jesli bedzie rowne to co??? Zobaczymy komunikat
wroc z plytka :)

Naszym zadaniem jest wiec zamiana tej linijki ze skoku kiedy
nierowne, na skok kiedy rowne (jne => je, czyli 75 => 74).
Kiedy juz jestesmy w tej linijce (jest podswietlona na zielono), 
to patrzymy na wartosc offset'u. W tym przypadku jest to 0000FB41h.
Znaczy to, ze pod tym offsetem w pliku znajdziemy nasz upragniony 
kawalek kodu.
Zamykamy wiec W32Dasm. Uruchamiamy DosNavigatora i na poczatek
kopiujemy plik (pharaoh.exe) w jakies miejsce. Musimy miec kopie 
zapasowa na wypadek gdyby cos nie wyszlo :)
Teraz naciskamy F3. Pomiedzy trybami wyswietlania (Hex / ASCII / Dump) 
przelaczamy sie dzieki F4. Musimy byc w trybie hex, poznamy to po 
charakterystyczny znakach tego trybu (cyfry od 0 do 9 i litery od A
do F). Teraz naciskamy F5. Pojawi sie okienko Goto Address. 
Wpisujemy tam nasz offset, czyli FB41 i naciskamy ENTER.
Kursor podswietla nam cyfre 7 wiec przesuwamy o jeden w prawo 
na 5. Zmieniamy teraz 5 na 4, w rezultacie otrzymujemy 74, co oznacza
skok jesli rowne (je), o co nam chodzilo. Teraz ESC i potwierdzamy, 
ze ma nastapic zapis. Wychodzimy z Dos Navigator'a i uruchamiamy gre.
I co??? dziala bez plyty. I o to nam wlasnie chodzilo.

Nie bedziemy juz dalej analizowac reszty miejsc (bylo ich razem, chyba
pamietacie, 5), z ktorych zostal wywolany ciag "Prosz", gdyz osiagnelismy juz nasz cel.
Ale jesli bardzo chcecie mozecie sobie posprawdzac co ciekawego tam sie znajduje :)

W tym tekscie pokazalem wam prosty sposob na CD-CHECK'a, a takze
to, ze czasem warto spojrzec tu i tam w plik, bo moze to byc zrodlem 
wielu ciekawych informacji. Moze troche dziwnie to zlamalem
(metoda "chybil/trafil" :), ale osiagnalem cel, a to jest najwazniejsze.
Moj sposob ukazuje takze, ze na powodzenie w crackowaniu, oprocz wiedzy,
sklada sie tez szczescie. 
Z moich obserwacji wynika, ze gra zostala spolszczona, ale w warstwie 
"glebszej" nadal operuje na reakcjach, ktore nazwano po angielsku. 

Pozdrowienia dla:
* PSYChEdRYNA (fajnie sie z Toba gada, jestes pierwszym czlowiekiem,
               z ktorym moglem in real pogadac o cracku, chemii
               i wielu innych rzeczach)
* Pawel (dzieki Tobie mialem ta gre)        
* osob, z ktorymi wspolpraca powoduje, ze kocham crack
* i ... dla Ciebie (za przeczytanie mojego tekstu)

Wszelkie opinie mile widziane. Mozecie je przesylac na adres:
mietor@poczta.fm

29.08.2000