|PSX : Zabezpieczenia CD|

podane materialy powinny byc wykorzystane jedynie w celu poglebienia wiedzy wlasnej lub ewentualnego stworzenia kopii bezpieczenstwa legalnie zakupionego przez siebie oprogramowania. tworzenie i sprzedaz kopii nielegalnych jest zlodziejstwem i zwyklym sqr***.

konsola Playstation firmy Sony wykorzystuje dwa typy zabezpieczen przeciw uzywaniu nielegalnych kopii gier. ponizej zostana opisane zarowno one, jaki i sposoby ich pokonywania.

[Bad Blocks]

oryginalne dyski PSX CD sa tworzone przy pomocy specjalizowanych nagrywarek, posiadajacych mozliwosc tworzenia 'bad block'ow (segmentow danych na plycie CD zaznaczonych jako bledne). zwykle bloki te sa nieporzadane poniewaz dane zapisane w nich sa stracone. z tego powodu prawie wszystkie zwykle nagrywarki plyt CD beda na sile poprawialy te 'bledy' po odczytaniu z plyty oryginalnej, a przed nagraniem kopii na nowym CD. specjalistyczny sprzet Sony sprzedawany jest wylacznie firmom w ktorych interesie jest uniemozliwienie nielegalnego kopiowania, a wiec nagrywarki te sa niedostepne dla zwyklych uzytkownikow.

bardziej szczegolowo: sektory 12-15 zawieraja wyzerowane (nieprawidlowe) checksum'y EDC/ECC, wiec kiedy konsola nie odnajduje blednych EDC/ECC - traktuje plyte jako nielegalna kopie. EDC jest pewnym typem sumy kontrolnej CRC, wykorzystywanym do okreslenia, czy dany sektor zostal odczytany poprawnie. ECC jest uzywany do ewentuanlnego odtworzenia blednego sektora.

cala ta przestrzen sektorow zapisana jest w formacie RAW (sektory 2352 bajtowe) i sa one wyzerowane wraz z XA sub-header'em i EDC/ECC. kopia CD-R posiada te dane rowniez wyzerowane, oprocz kodu EDC/ECC, ktory zapisany jest poprawnie jako 0x3F13B0BC.

notka: dyski PSX posiadaja czarno-polimerowa(?) powloke. ciemnoniebieski barwnik dodawany do polimeru pokrywajacego spodnia strone plytki zmienia minimalnie efekt zalamania/odbicia swiatla. nie jest to moze prawdziwy mechanizm anty-piracki, ale pomaga wizualnie rozpoznac nielegalna kopie. tak mozemy wiec rozpoznac czy ktos wciska nam 'oryginalka panie, po legalu! ciocia z zachodu dzieciom przyslala!', czy zwykly chinski chlam.

[wierne duplikowanie dysku (wraz z nienaruszonym zabezpieczeniem)]

jedyna droga by poprawnie zduplikowac dysk wraz z zabezpieczeniem jest zdobycie zmodyfikowanego oprogramowania (firmware) do konkretnej nagrywarki CDR, ktora powinna zezwalac na zapis w trybach 'disc-at-once' lub 'track-at-once' nie przeprowadzac automatycznie korekty 'blednych' kodow EDC/ECC. powinna tez zezwalac na zapis pierwszego sektora w formacie RAW (sektor 2352 bajtow, CD-DA) i wymusic odnotowanie track'u w TOC (Table of Contents) jako sciezki CD-XA.

[Country-Code Lockout]

zabezpiecznie to uniemozliwia odpalanie gier przeznaczonych na rynek pewnego regionu (dokladniejsze wyjasnienia w czesci o GeoPortection) na konsolach przeznaczonych na inny. zabezpieczenie Country-Code Lockout (zwane tez Regional albo GeoProtection) porownoje 5 pierwszych sektorow z dysku CD (sektory 0-4 zawieraja napis 'Licensed from' oraz lancuch informujacy konsole, czy dana plytka posiada licencje dla tej samej strefy co konsola) z PSX Country-Code zawartym w ROMie konsoli. jesli kody nie zgadzaja sie - gra nie bedzie kontynuowana.
analiza zgodnosci wykonywana jest w czasie boot'owania z ROMu, wiec na nowszych konsolach tego zabezpieczenia nie da sie ominac przy pomocy 'Swap Trick'. metody 'swap' omina tylko zabezpieczenie przeciw kopiowaniu ('Bad Blocks').

notka: IMFO, GeoProtection jest numerem nie-fair ze strony Sony, a wiec patch'owanie swojej legalnej gry by moc uzywac jej na wlasnej konsoli jest ok. czasem gre mozemy dostac od osoby, ktora nie ma pojecia o tym, a my mamy mozgi po to, by z tym sobie radzic.

[patch na zabezpieczenie Country-Code Lockout]

najskuteczniejsza (i najwygodniejsza) metoda jest odpowiednie przygotowanie samej plytki podczas kopiowania. trzeba odnalezc w internecie lub samemu zczytac z plyt oryginalnych pierwsze 16 sektorow (0-15) jako 'surowe' sektory (format RAW) dla strefy, dla ktorej plytke chcemy przygotowac. na pierwszych 16 sektorow kopiowanej plytki z innej strefy nalezy 'wkleic' pozadany image file dla naszej wersji konsoli. nastepnie tak sklejony image wypalic. w internecie powinny znajdowac sie wykonane juz wczesniej przez zachodnich crackerow image files o nazwach: PSX_JAP.RAW, PSX_EUR.RAW, PSX_USA.RAW. polecam je jako pewniejsze, jesli nie udaje sie zczytac samemu.

[uruchamianie kopii gier]

ponizej opisano 3 sposoby uruchamiania kopii gier (tzw. backups):

  • Swap Trick
  • MODified Boot Chip
  • Cartridge

1. Swap Trick polega na boot'owaniu z oryginalnego PSX CD, recznym przerwaniu oraz zamianie na backup. metoda ta dziala tylko ze wczesniejszymi wersjami hardware konsoli (wiecej informacji w specjalnym tekscie).

2. zainstalowanie MODified Boot Chip(ModChip) wewnatrz konsoli. ModChip jest zwykle mikrokontrolerem (spotkalem sie z ukladami PIC i Z8), ktorego program oszukuje konsole tak, by odczytala wyniki testow Country-Code & Bad Blocks jako prawidlowe. do zainstalowania ModChip'a konieczne jest zdjecie obudowy (utrata gwarancji!) oraz wlutowanie ukladu na plyte. ilosc 'drutow do przylepienia' zalezy od wykorzystanego ukladu, spotykalem 4, 7 lub kilkanascie.

3. Cardridge takie jak Action Replay firmy Datel UK, Game Enhancer czy Game Shark, podlaczne do portu I/O z tylu konsoli potrafia skutecznie 'oglupiac' konsole, by akcepotowala i backup'y, i import'y. oczywiscie jest to jedna z licznych 'zalet' tego typu przystawek sprzetowych (zwykle sa to freezer'y z mozliwoscia debugging'u, edycji i przeszukiwania pamieci, umozliwiaja robienie trainer'ow, etc.). ich dodatkowym plusem jest to, iz przy ich stosowaniu nie ma potrzeby otwierania konsoli, a wiec nie nastepuje utrata gwarancji.

[ Wykorzystano materiały: IcePic!/TRSi, M.A.D. Cracking Sindicate, Internet ]

 
|PSX: zabezpieczenie typu dongle|

ostatnio coraz wiecej gier zaczyna ukazywac sie z zabezpieczeniem w postaci dongle (keylock, klucz sprzetowy). nie jest to jednak specjalna przystawka sprzetowa, a jedynie zwykla karta pamieci (memory card).

zabezpieczenie przechowywane jest w pierwszym bloku karty pamieci. zwykly rozmiar 'memory card' to 16 blokow, ale tylko 15 z nich jest dostepnych dla uzytkownika. dzieje sie tak dlatego, ze karta pamieci jest mount'owana w systemie jako 'urzadzenie', co oznacza, ze pierwszy blok zawiera tablice allokacji plikow dla plikow przechowywanych w karcie.

najprostszym sposobem jest skopiowanie zawartosci dongle na zwykla karte pamieci o odpowiednim rozmiarze jako RAW. grupa Paradox obiecywala wypuszczenie specjanego softu ulatwiajacego kopiowanie zawartosci kart, czy wypuscila go - niewiem (jesli ktos wie/posiada, contact me, plz :). inna metoda jest zapatch'owanie procedurek sprawdzajacych obecnosc dongle (odkrywcze :). zabezpieczenie nie moze byc skopiowane przez zwykly manager plikow karty pamieci, poniewaz skopiowane zostaly by wylacznie informacje o blokach, a nie infromacje zawarte w 'file alloc table' (nasza tablica allokacji plikow na karcie).

zwykle informacjami poszukiwanymi przez procedure zabezpieczenia sa nazwa gry oraz nazwa jej wydawcy lub cos podobnego. procedury odczytuja pierwszy blok karty jako RAW i sprawdzaja obecnosc 'podpisu'. tak wiec nalezyaloby ustawic breakpoint na pierwsza probe dostepu do karty albo prawcowicie poprzez trace dotrzec do wlasciwej procki. parametry zwykle przekazywane sa przez rejestry (v0, t0 etc.), wiec zwykle jedna instrukcja wystarcza byc zapatch'owac to sprawdzenie, bez zbytniego wnikania gleboko w kod i czym predzej cieszyc sie kolejna wspaniala gra :)

[ Wykorzystano materiały: Freefall/PDX, Internet ]

|PSX: zabezpieczenie anti-freezer (AR)|

ostatnio coraz wiecej gier zaczyna ukazywac sie z zabezpieczeniem przeciw freezer'om takim jak nasz ulubiony Action Replay firmy Datel UK. freezer (module, cartridge) to wspaniala przystawka sprzetowa pozwalajaca zatrzymac gre w dowolnym momencie (freeze - zamrozic), dokonac zmian w kodzie i rejestrach, oszukac 'Bad Blocks' i GeoProtection ('Country Lockout Code'), zrobic sobie niesmiertelnosc lub poprostu zlamac zabezpieczenie (np. dongle), czyli cos jak SoftICE na pc, tyle ze sprzetowy. nic dziwnego, ze Sony postanowilo wykrywac te zacna i pozyteczna przystawke. zabezpieczenie wykrywa Action Replay'a w wersjach ponizej v3.2 (bo Datel UK te wersje 'uodpornil' juz na wykrywaie go w ten sposob :). wykrywane sa wiec v3.0 i v3.1 po czym gra jest stopowana. na szczescie jest dosc prosty sposob, by zapatch'owac wykrywanie freezer'a. wszystko co nalezy zrobic to wpisac ponizszy kawalek kodu:


C1000000 0000
800005F4 3800
800005F6 4080


...i dalej nasza gra powinna ladowac sie bez problemu :)

 

ponizej lista kilku gier, w ktorych opisane zabezpieczenie wystepuje:


* Dino Crisis
* Final Fantasy 8
* Legacy of Kain : Soul Reaver
* V-Rally 2
* Ape Escape


mozna sie spodziewac, ze wiekszosc nowo wydawanych tytulow bedzie zawierala to zabezpieczenie. swoja droga - na amidze 5oo rowniez dzieki paru trickom mozna bylo wykryc Action'a a nawet obronic sie w miare skutecznie przed nim. w polsce np. Scorpio/Action Direct (pozniej UNiON) wydal kiedys interko w ktorym 'zabezpieczyl' sie przed podgladem jego kodu. moze Sony powinno zwrocic sie w koncu to scenowych fachowcow, bo jak widac pomysly firmy nie sa zbyt skuteczne.

innym sposobem pozbycia sie zabezpieczenia (jesli kod hexadecymalny kogos przyprawia o mdlosci) jest uzycie XPS Patcher'a, ktory rowniez zalatwia sprawe.

kolejnym pomyslem Sony w tej sprawie bylo wypuszczenie modelow serii SCPH-9000. w konsolach tych port rownolegly, poprzez ktory podlaczane sa wszystkie freezer'y zostal podobno usuniety. radykalne ale chyba dosc skuteczne :) co prawda nie widzialem zadnego modelu serii SCPH-9000, wiec nie moge stwierdzic tego z calkowita pewnoscia. mam nadzieje, ze Sony wycofalo sie z tego (jesli macie jakies info, mail me plz :) tak czy siak - jesli dopiero kupujecie PSX - kupcie cos z serii SCPH-75xx lub wczesniejsze, by uniknac klopotow (w koncu nie wiadomo co wyknuja te cwaniaki z Sony :)

[ Wykorzystano materiały: Datel UK, Internet ]

|PSX: mapa zawartosci PSX CD|

ponizej przedstawiono przykladowa rozpiske polozenia blokow na plycie PSX:

Blocki Opis zawartosci blokow

------------- ----------------------------------------------
000000-000015 Data track boot blocks (patrz NOTKA 1)
000016-024520 Data track program area (patrz NOTKA 2)
024521-024670 Postgap for data track (patrz NOTKA 3)
024671-024820 Pregap for first audio track (patrz NOTKA 4)
024821-048326 Audio track #1
048327-048476 Pregap for second audio track (patrz NOTKA 5)
048477-072485 Audio track #2
.
.
.
191281-191430 Pregap for ninth audio track
191431-214349 Audio track #9
214350-?????? Leadout track (patrz NOTKA 6)

NOTKA 1: pierwszych 16 blokow na dysku stanowia 'boot-blocki'. zawieraja one informacje dla ktorej strefy dana plyta zostala przeznaczona oraz 'Country Lockout-Code', czyli zabezpieczenie geogroaficzne.


NOTKA 2: bloki 16-024520 sa miejscem skladowania gry wlasciwej. dane zakodowane sa w formacie CDROM-XA, przy uczyciu typu sektorow: Form-1 i Form-2. system plikow zapisany jest w formacie ISO9660.


NOTKA 3: kiedy za trackami z danymi znajduja sie sciezki audio, dane musza konczyc sie 'przerwami' o dlugosciach conajmniej 150 sektorow, wypelnionymi zerami. powodem takiego sposobu tworzenia plyt jest stworzenie 'stref buforowych' pomiedzy wlasciwymi danymi gry a sciezkami audio. takie bufory sa koniecznie, poniewaz niektore czytniki CD nie moga odczytac ostatkich kilku sektorow sciezki, o ile za nimi wystepuja sciezki audio.


NOTKA 4: kiedy za sciezkami audio znajduja sie dane - poprzedzac je musi przerwa o dlugosci 150 lub 300 sektorow (2 lub 4 sekundy). powod umieszczenia tych przerw jest taki sam jak w NOTCE 3 - fizycznie oddzielic dane od sciezek audio, by zapobiec bledom odczytu. sektory danych i audio zwykle sa odczytywane poprzez oddzielne komendy a kazda z tych komend moze odczytywac tylko okreslony typ sektorow.

NOTKA 5: przerwa poprzedzajaca wszystkie sciezki audio po tracku #1 zdaza sie miec rozna dlugosc na roznych plytach (0 lub 150 sektorow). programy kopiujace zwykle skopiuja te przerwy, ale niekiedy moga nie kodowac ich wlasciwie.


NOTKA 6: sciezka 'LEADOUT' jest zapisywana automatycznie przez nagrywarke (wyjatek stanowia nagrywarki Philips'a) i uzytkownik nie ma na to wplywu. ta przestrzen nie jest mozliwa do odczytania przez normalny czytnik CD lub nagrywarke. obsar ten zdaje sie 'zamykac sesje'.

made by Sachy (turbofr0g)



All rights reserved for CRACKPL 1998 - 2oo2 . Designed by hauer