You are on page 1of 37

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

Hardware Hacking.
Edycja polska
Autorzy: Joe Grand, Ryan Russell
Tumaczenie: Radosaw Meryk
ISBN: 83-7361-549-0
Tytu oryginau: Hardware Hacking
Format: B5, stron: 424

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Hacking sprztowy rozwija si od dawna. Za jego prekursorw uznaje si zaoycieli


firmy Hewlett-Packard, ktrzy rozpoczli budowanie swojego imperium od prb
wykorzystania znanych urzdze do celw, do ktrych nie byy przewidywane.
Dzi hakerem sprztowym mona nazwa kadego, kto samodzielnie prbuje
zmodyfikowa swj komputer, palmtopa lub inne urzdzenie tak, aby wycisn
z niego maksimum moliwoci. Kady hobbysta-elektronik moe zosta hakerem
sprztowym, wiedzc, co wykorzysta i co zmodyfikowa.
Ksika Hardware Hacking. Edycja polska to podrcznik dla wszystkich, ktrzy chc
sprbowa si przy samodzielnym modyfikowaniu swojego sprztu. Autorzy osoby
na co dzie zajmujce si projektowaniem urzdze elektronicznych i oprogramowania
dziel si swoj wiedz dotyczc hackingu sprztowego. Zarwno pocztkujcy
hobbysta, jak i zaawansowany elektronik znajd tu co dla siebie.
Kompletowanie niezbdnych narzdzi
Tworzenie macierzy RAID z dyskiem FireWire
Budowa zestawu kina domowego wykorzystujcego komputer
Modyfikowanie konsol Atari 2600 i 7200
Przerbki komputerw omiobitowych
Hacking konsoli Playstation
Modyfikowanie urzdze dostpowych w sieciach bezprzewodowych
Przerbki telefonw komrkowych i palmtopw
Przegld najwaniejszych informacji o systemach operacyjnych i programowaniu
w jzyku C

Spis treci
Podzikowania................................................................................. 11
O Autorach ...................................................................................... 13
Sowo wstpne ................................................................................ 17
Wstp ............................................................................................. 23

Cz I

Wprowadzenie do hackingu sprztowego.........................27

Rozdzia 1. Narzdzia......................................................................................... 29
Wprowadzenie................................................................................................................. 29
Zestaw podstawowy ........................................................................................................ 30
Zestaw dla rednio zaawansowanych .............................................................................. 32
Zestaw dla zaawansowanych........................................................................................... 35
Gdzie mona zakupi potrzebne narzdzia...................................................................... 38

Rozdzia 2. Podstawy elektroniki ....................................................................... 39


Wprowadzenie................................................................................................................. 39
Pojcia wstpne ............................................................................................................... 40
Bity, bajty i pbajty.................................................................................................. 40
Schematy elektryczne................................................................................................ 42
Napicie, natenie i rezystancja............................................................................... 45
Prd stay i przemienny................................................................................. 46
Rezystancja................................................................................................... 47
Prawo Ohma ................................................................................................. 47
Podstawowe elementy elektroniczne............................................................................... 48
Rezystory .................................................................................................................. 48
Kondensatory ............................................................................................................ 50
Diody ........................................................................................................................ 54
Tranzystory ............................................................................................................... 56
Ukady scalone.......................................................................................................... 58
Techniki lutowania .......................................................................................................... 60
Przykad: lutowanie rezystora na pytce drukowanej ................................................ 61
Wskazwki dotyczce wylutowywania..................................................................... 64
Przykad: Wymontowywanie ukadw montowanych powierzchniowo
za pomoc zestawu ChipQuik ..................................................................... 64
Popularne bdy inynierskie........................................................................................... 68

Hardware Hacking. Edycja polska


cza internetowe i inne zasoby...................................................................................... 69
Ksiki powicone elektronice oglnej ................................................................... 69
Strony WWW powicone elektronice ..................................................................... 70
Dokumentacje urzdze i informacje o elementach .................................................. 70
Najwaniejsi dystrybutorzy elementw elektronicznych i czci.............................. 71
Dystrybutorzy nietypowych czci............................................................................ 71

Cz II

Modyfikacje sprztowe ...................................................73

Rozdzia 3. Modding obudw na przykadzie


terabajtowego dysku twardego FireWire ........................................... 75
Wprowadzenie................................................................................................................. 75
Modding.................................................................................................................... 75
Budowa macierzy RAID z interfejsem FireWire o pojemnoci 1,2 TB........................... 76
Przygotowania........................................................................................................... 77
Wykonywanie projektu ............................................................................................. 78
Jak dziaa produkt?.................................................................................................... 83
Modyfikacja obudowy dla macierzy FireWire RAID...................................................... 84
Przygotowania........................................................................................................... 85
Wykonanie projektu .................................................................................................. 86
Jak to dziaa?............................................................................................................. 93
Dodatkowe zasoby .......................................................................................................... 94
Modyfikacje obudw ................................................................................................ 95

Rozdzia 4. Komputerowe kino domowe komputer HTPC ................................ 97


Wprowadzenie................................................................................................................. 97
Zanim zaczniesz: analiza i planowanie............................................................................ 99
Ile to bdzie kosztowao? ........................................................................................ 100
Czy kto to ju zrobi?............................................................................................. 101
Komponenty projektu.................................................................................................... 102
Monitor ................................................................................................................... 104
Moliwoci wywietlania wideo wyszej jakoci .........................................105
Karta graficzna ........................................................................................................ 108
Obudowa ................................................................................................................. 109
Dyski twarde ........................................................................................................... 111
Szybko......................................................................................................112
Gono pracy dysku ..................................................................................113
Dyski optyczne........................................................................................................ 114
Procesor .................................................................................................................. 114
Karta dwikowa..................................................................................................... 116
Zdalne sterowanie ................................................................................................... 116
Oprogramowanie..................................................................................................... 117
Komputer HTPC z systemem Windows........................................................................ 121
Przygotowania......................................................................................................... 121
Wykonywanie projektu: oprogramowanie .............................................................. 125
Eazylook......................................................................................................127
Wykorzystanie programu rozruchowego Launchpad ....................................127
Wykorzystanie programu Guide Plus+ .........................................................129
CDex ...........................................................................................................130
FairUse ........................................................................................................130
Komputer HTPC z systemem Windows podsumowanie.................................... 134
Komputer HTPC z systemem Linux.............................................................................. 135
Przygotowania......................................................................................................... 135
Sprzt ...................................................................................................................... 135

Spis treci

5
Wykonywanie projektu: oprogramowanie .............................................................. 141
Instalacja sterownikw karty telewizyjnej ....................................................142
Instalacja programu MPlayer i kodekw ......................................................142
Instalacja programu MythTV .......................................................................142
Linuksowy komputer HTPC podsumowanie...................................................... 147
Co dalej? Zagadnienia dla zaawansowanych................................................................. 148

Rozdzia 5. Hacking konsol Atari 2600 i 7800 ................................................. 149


Wprowadzenie............................................................................................................... 149
Atari 7800 ProSystem ............................................................................................. 150
Projekty opisane w tym rozdziale............................................................................ 152
Joystick dla leworcznych do Atari 2600 ........................................................................... 152
Przygotowania......................................................................................................... 153
Wykonywanie projektu ........................................................................................... 153
Przystosowanie kontrolera konsoli NES do wykorzystania z Atari 2600 ......................... 156
Przygotowania......................................................................................................... 156
Wykonywanie projektu ........................................................................................... 157
Dwik stereo w Atari 2600 .......................................................................................... 162
Przygotowania......................................................................................................... 163
Wykonywanie projektu ........................................................................................... 164
Jak to dziaa?........................................................................................................... 169
Instalacja niebieskiej diody LED w Atari 7800............................................................. 169
Przygotowania......................................................................................................... 170
Wykonywanie projektu ........................................................................................... 170
Jak to dziaa?........................................................................................................... 173
Wyeliminowanie problemw zgodnoci modelu 7800 z modelem 2600 ...................... 174
Przygotowania......................................................................................................... 175
Wykonywanie projektu ........................................................................................... 176
Jak to dziaa?........................................................................................................... 178
Naprawa regulatora napicia konsoli Atari 7800........................................................... 178
Przygotowania......................................................................................................... 179
Wykonywanie projektu ........................................................................................... 179
Jak to dziaa?........................................................................................................... 182
Instalacja standardowego gniazda zasilania w Atari 7800............................................. 183
Przygotowania......................................................................................................... 184
Wykonywanie projektu ........................................................................................... 184
Inne projekty ................................................................................................................. 187
Instalacja wyj zespolonego sygnau wideo (S-Video) w konsoli 2600..................... 187
Wyjcia sygnau zespolonego i S-Video w Atari 7800 ........................................... 188
Przystosowanie kontrolera konsoli Sega Genesis
do wykorzystania w konsoli Atari 7800 ............................................................... 188
Przystosowanie kontrolera konsoli NES do wykorzystania w konsoli Atari 7800......189
System DevOS dla Atari 7800 oraz kable potrzebne do obsugi jego funkcji......... 189
Zasoby powicone konsoli Atari w internecie ....................................................... 189

Rozdzia 6. Hacking konsoli Atari 5200 i komputerw omiobitowych............... 191


Wprowadzenie............................................................................................................... 191
Atari 5200 SuperSystem.......................................................................................... 193
Modyfikacje ............................................................................................................ 194
Instalacja niebieskiej diody LED w Atari 5200............................................................. 194
Przygotowania......................................................................................................... 195
Wykonywanie projektu ........................................................................................... 195
Jak to dziaa?........................................................................................................... 199

Hardware Hacking. Edycja polska


Wykonanie kontrolera typu paddle dla Atari 5200 ...................................................... 199
Przygotowania......................................................................................................... 200
Wykonywanie projektu: rozmontowanie kontrolera paddle.................................... 201
Wykonywanie projektu: wykonanie kontrolera typu paddle dla konsoli Atari 5200...203
Ulepszanie urzdzenia: docione pokrto ..................................................209
Jak to dziaa?........................................................................................................... 210
Przystosowanie czteroportowej wersji konsoli Atari 5200 do wykorzystania
standardowego przecznika RF ................................................................................. 211
Przygotowania......................................................................................................... 212
Wykonywanie projektu ........................................................................................... 213
Jak to dziaa?........................................................................................................... 219
Wykonanie kabli S-Video i zespolonego sygnau wideo
dla omiobitowych komputerw Atari........................................................................ 220
Przygotowania......................................................................................................... 222
Wykonywanie projektu ........................................................................................... 223
Rozwizania alternatywne....................................................................................... 227
Jak to dziaa?........................................................................................................... 228
Informacje techniczne ............................................................................................. 228
Inne projekty ................................................................................................................. 229
Modyfikacja przejciwki kartrida czteroportowej konsoli Atari 5200 VCS ........ 230
Instalacja gniazd zespolonego sygnau wideo i S-Video w konsoli Atari 5200 ...... 230
Kabel SIO2PC do poczenia omiobitowego komputera Atari z komputerem PC ....230
Zasoby powicone komputerom i konsolom Atari w internecie.......................... 231

Rozdzia 7. Hacking konsoli Playstation 2 ........................................................ 233


Wprowadzenie............................................................................................................... 233
Komercyjny hacking sprztowy: modchipy .................................................................. 234
Otwieranie konsoli PS2 ................................................................................................. 236
Wersje pyty gwnej .............................................................................................. 236
Identyfikacja pyty gwnej..........................................................................237
Otwieranie konsoli .................................................................................................. 238
Instalacja portu szeregowego......................................................................................... 241
Przygotowania......................................................................................................... 242
Wykonywanie projektu ........................................................................................... 243
Testowanie...................................................................................................248
Jak to dziaa?........................................................................................................... 248
adowanie kodu z karty pamici................................................................................... 249
Przygotowania......................................................................................................... 249
Wykonywanie projektu: przygotowanie pliku TITLE.DB .......................................... 250
Wybr pliku BOOT.ELF..............................................................................252
Zapisywanie pliku TITLE.DB na karcie pamici..........................................252
Niezaleno! ..............................................................................................253
Jak to dziaa?........................................................................................................... 253
Inne projekty: niezalene dyski twarde ......................................................................... 255
Przegld systemu PS2 ................................................................................................... 256
Ukad Emotion Engine............................................................................................ 256
Szeregowy port wejcia-wyjcia...................................................................257
Procesor wejcia-wyjcia ........................................................................................ 260
Interfejs procesora pomocniczego........................................................................... 260
Dodatkowe zasoby internetowe..................................................................................... 260

Spis treci

Rozdzia 8. Hacking sieci bezprzewodowych 802.11......................................... 263


Wprowadzenie............................................................................................................... 263
Modyfikacja bezprzewodowej karty sieciowej PCMCIA:
instalacja zewntrznego gniazda antenowego ............................................................. 264
Przygotowania......................................................................................................... 265
Wykonywanie projektu ........................................................................................... 267
Zdejmowanie obudowy ................................................................................267
Przesunicie kondensatora ...........................................................................269
Zamontowanie nowego gniazda ...................................................................269
Jak to dziaa?........................................................................................................... 270
Przeprogramowanie urzdzenia dostpowego
instalacja systemu Linux OpenAP firmy Instant802.............................................. 271
Przygotowania......................................................................................................... 271
Wykonywanie projektu ........................................................................................... 272
Instalacja karty SRAM.................................................................................273
Wczenie zasilania......................................................................................276
Jak to dziaa?........................................................................................................... 276
Uzyskanie penej kontroli nad urzdzeniem dostpowym Dell 1184................................. 277
Przygotowania......................................................................................................... 277
Wykonywanie projektu ........................................................................................... 278
Jak to dziaa?........................................................................................................... 282
Podsumowanie .............................................................................................................. 282
Dodatkowe zasoby i inne projekty ................................................................................ 283
Grupy uytkownikw.............................................................................................. 283
Artykuy i badania................................................................................................... 283
Produkty i narzdzia................................................................................................ 284

Rozdzia 9. Czy mnie teraz sycha?


Modyfikacje telefonu komrkowego Nokia 6210............................. 285
Wprowadzenie............................................................................................................... 285
Wymiana diod LED w telefonie Nokia 6210............................................................... 286
Przygotowania......................................................................................................... 287
Wykonywanie projektu ........................................................................................... 289
Otwieranie telefonu Nokia 6210...................................................................289
Demonta starych diod LED ........................................................................293
Zamontowanie nowych diod LED ................................................................294
Zwikszenie mocy diod LED .......................................................................296
Ponowne zmontowanie telefonu...................................................................297
Jak to dziaa?........................................................................................................... 297
Wykorzystanie kabli do przesyania danych.................................................................. 299
Kable do przesyania danych................................................................................... 301
Kable do programowania ........................................................................................ 303
Net Monitor............................................................................................................. 304
Inne modyfikacje i zasoby dodatkowe .......................................................................... 308

Rozdzia 10. Aktualizacje pamici w palmtopach................................................ 309


Wprowadzenie............................................................................................................... 309
Rnice pomidzy modelami .................................................................................. 311
Modyfikacje komputerw Pilot 1000 i Pilot 5000......................................................... 312
Przygotowania......................................................................................................... 312
Demonta karty pamici.......................................................................................... 313
Instalacja dodatkowej pamici .....................................................................315
Jak to dziaa?........................................................................................................... 317

Hardware Hacking. Edycja polska


Modyfikacje komputerw PalmPilot Professional i PalmPilot Personal ....................... 320
Przygotowania......................................................................................................... 320
Demonta karty pamici...............................................................................320
Instalacja dodatkowej pamici .....................................................................321
Jak to dziaa?........................................................................................................... 323
Modyfikacja komputera Palm m505 ............................................................................. 326
Przygotowania......................................................................................................... 327
Otwieranie komputera ............................................................................................. 328
Demonta pyty gwnej ......................................................................................... 329
Demonta ukadw pamici .................................................................................... 330
Instalacja dodatkowej pamici ................................................................................ 332
Jak to dziaa?........................................................................................................... 334
Informacje techniczne ................................................................................................... 336
Sprzt ...................................................................................................................... 336
System plikw......................................................................................................... 337
Mapa pamici.......................................................................................................... 337
Struktura bazy danych............................................................................................. 338
cza dotyczce urzdze Palm w internecie................................................................ 339
Informacje techniczne ............................................................................................. 339
Modyfikacje urzdze Palm.................................................................................... 339
Aktualizacje pamici....................................................................................340

Cz III Hacking sprztowy. Kompendium wiedzy technicznej.....341


Rozdzia 11. Przegld informacji o systemach operacyjnych ................................. 343
Wprowadzenie............................................................................................................... 343
Podstawowe wiadomoci o systemach operacyjnych .................................................... 344
Pami..................................................................................................................... 344
Pami fizyczna ...........................................................................................345
Pami wirtualna .........................................................................................346
Systemy plikw....................................................................................................... 347
Buforowanie............................................................................................................ 349
Wejcie-wyjcie ...................................................................................................... 349
Procesy.................................................................................................................... 349
Wywoania systemowe............................................................................................ 350
Powoki, interfejsy uytkownika i graficzne interfejsy uytkownika...................... 351
Sterowniki urzdze ...................................................................................................... 351
Urzdzenia blokowe i znakowe............................................................................... 353
Waciwoci wbudowanych systemw operacyjnych ................................................... 356
Linux ............................................................................................................................. 357
Open Source............................................................................................................ 357
Historia.................................................................................................................... 358
Wbudowany Linux (uCLinux) ................................................................................ 359
Przykady produktw: systemy wbudowane z Linuksem........................................ 359
VxWorks ....................................................................................................................... 360
Przykady: systemy wbudowane z VxWorks .......................................................... 360
Windows CE ................................................................................................................. 361
Podstawowe pojcia ................................................................................................ 361
Przykady produktw: Windows CE w systemach wbudowanych.................363
Podsumowanie .............................................................................................................. 363
Odsyacze i dodatkowa literatura .................................................................................. 364

Spis treci

Rozdzia 12. Kodowanie w piguce ..................................................................... 365


Wprowadzenie............................................................................................................... 365
Podstawowe pojcia programowania ............................................................................ 366
Przypisanie.............................................................................................................. 366
Struktury sterujce .................................................................................................. 367
Ptle.............................................................................................................368
Warunkowe przekazanie sterowania.............................................................368
Bezwarunkowe przekazanie sterowania .......................................................369
Struktury danych ..................................................................................................... 370
Struktury......................................................................................................371
Tablice.........................................................................................................371
Tablice asocjacyjne......................................................................................372
Listy powizane ...........................................................................................373
Czytelno............................................................................................................... 375
Komentarze..................................................................................................375
Nazwy funkcji i zmiennych..........................................................................376
Czytelno kodu: sposoby zapisu .................................................................376
Wprowadzenie do jzyka C........................................................................................... 377
Historia i podstawy jzyka C................................................................................... 377
Wywietlanie komunikatw na ekranie ........................................................378
Typy danych w jzyku C..............................................................................380
Funkcje matematyczne.................................................................................380
Struktury sterujce .................................................................................................. 383
Ptle for .......................................................................................................383
Ptle while ...................................................................................................385
Instrukcja If-Else .........................................................................................385
Instrukcja switch..........................................................................................386
Struktury danych ..................................................................................................... 387
Tablice, wskaniki i cigi znakw................................................................387
Struktury......................................................................................................392
Wywoania funkcji i przekazywanie zmiennych ..................................................... 392
Wywoania systemowe i dostp do sprztu............................................................. 394
Podsumowanie ........................................................................................................ 394
Debuggowanie............................................................................................................... 395
Debuggery............................................................................................................... 395
Wykorzystanie funkcji printf w celach diagnostycznych...................................... 396
Wprowadzenie do jzyka assemblera ............................................................................ 398
Skadniki instrukcji w jzyku asemblera ................................................................. 399
Etykiety .......................................................................................................399
Operacje ......................................................................................................400
Operandy .....................................................................................................400
Przykadowy program ............................................................................................. 401
Podsumowanie .............................................................................................................. 403
Dodatkowe materiay..................................................................................................... 403

Dodatki .......................................................................................405
Skorowidz...................................................................................... 407

Rozdzia 7.

Hacking konsoli
Playstation 2
W tym rozdziale:
 Otwieranie konsoli Playstation 2
 Instalacja portu szeregowego
 adowanie kodu z karty pamici
 Inne projekty: wykorzystanie dowolnych twardych dyskw

Wprowadzenie
Z 60 milionami egzemplarzy sprzedanymi na caym wiecie wedug stanu na sierpie
2003 roku konsola PlayStation 2 firmy Sony posiada najwiksz liczb uytkownikw spord wszystkich wspczesnych konsol gier. Do nieoczekiwanie, w porwnaniu z konsolami Xbox firmy Microsoft oraz Dreamcast firmy Sega, dla konsoli PS2
istnieje stosunkowo mao modyfikacji sprztowych i hobbystycznych projektw oprogramowania. Istnieje aktywna spoeczno programistw tworzcych oprogramowanie
dla konsoli PS2, ale jej liczebnoci nie da si porwna z analogicznymi grupami dla konsol Xbox lub Dreamcast. Poza producentami zmodyfikowanych ukadw, znanych jako
modchipy, przerbkami konsol PS2 zajmuje si bardzo niewielu hakerw sprztowych.
Jednym z powodw, dla ktrych nie istnieje zbyt wiele modyfikacji konsoli PS/2 jest
fakt, e dua grupa utalentowanych hakerw zajmujcych si wsteczn inynieri
sprztu konsoli PS2 to producenci modchipw. Ludzie ci chroni informacje, traktujc je
jak tajemnice handlowe i rzadko ujawniaj szerszemu gronu odbiorcw (zazwyczaj dostarczaj tylko tyle informacji, ile potrzeba uytkownikowi do zainstalowania modchipa).
Dodatkowo, chocia w konsoli PS2 zastosowano kilka standardowych interfejsw,
takich jak USB czy IEEE 1394, jej architektura wewntrzna cakowicie rni si od
standardowych na przykad od architektury PC, na ktrej opiera si konsola Xbox.
Zlokalizowanie szyn danych oraz zidentyfikowanie sygnaw wyjciowych generowanych przez niestandardowe ukady pyty konsoli PS2 wymaga znacznie wicej wysiku.

234

Cz II Modyfikacje sprztowe

Komercyjny hacking sprztowy:


modchipy
W przypadku wszystkich konsol handel pirackim oprogramowaniem jest doskonaym
interesem. Chocia producenci konsol stosuj zabezpieczenia, ktre utrudniaj przecitnemu graczowi kopiowanie gier, hakerzy sprztowi stosuj wyspecjalizowane techniki majce na celu pokonanie tych mechanizmw. Techniki te obejmuj wyszukiwanie systemowych szyn danych za pomoc analizatorw logicznych i zrzucanie obrazw
systemu BIOS w celu opracowania obej programowych. Modchipy, ktrych jedynym niegdy celem byo umoliwienie wykorzystania nielegalnych kopii gier, stay
si skomplikowanymi urzdzeniami o znacznie szerszych moliwociach.
Czsto wykorzystuje si w nich specjalizowane eksploity i obejcia, majce na celu pokonanie okrelanego zabezpieczenia. Modchipy to niewielkie obwody drukowane,
podczane do rnych elementw na pycie gwnej konsoli. Zazwyczaj podstaw tych
ukadw s mikroukady PIC lub PLD (Programmable Logic Device programowalne urzdzenia logiczne). Istniej take nowoczesne modchipy, w ktrych wykorzystuje si ukady FPGA i Flash ROM, co umoliwia ich aktualizacj, wprowadzanie
poprawek i nowych funkcji. Zazwyczaj modchip wysya sygna do systemu zabezpiecze konsoli i w ten sposb oszukuje ten mechanizm, ktry przyjmuje, e uytkownik
uy legalnej pyty z gr. Za pomoc modchipw mona rwnie pokona inne systemy
zabezpiecze, np. kody BIOS-u lub domylny tryb wideo (PAL lub NTSC) karty graficznej konsoli.
W konsoli PS2 modchipy s stosowane gwnie w celu pokonania sprztowych mechanizmw uwierzytelniania dla dyskw. Wykorzystuje si je rwnie do aktualizowania
BIOS-u, cigania blokady Macrovision, uniemoliwiajcej nagrywanie zawartoci pyt
DVD na magnetowid, pokonywania ogranicze regionalnych dla pyt DVD oraz w celu
modyfikacji systemu video wykorzystywanego w grach (np. aby umoliwi gr w gry
przeznaczone dla systemu PAL w konsoli z systemem NTSC). Pierwsze modchipy
byy prostymi urzdzeniami, zdolnymi do pokonywania mechanizmw uwierzytelniania
dyskw oraz wykonywania tzw. podmiany dyskw (ang. swap trick). Sztuczka ta polega na zastosowaniu specjalnych dyskw adujcych (tworzonych przez hakerw) z kodem zatrzymujcym napd DVD. Po zatrzymaniu napdu, uytkownik wymusza jego
otwarcie, stosujc specjaln modyfikacj obudowy (tzw. fliptop) lub czasami za pomoc
plastikowego noa lub paskiego przedmiotu przypominajcego kart kredytow. Nastpnie umieszcza w napdzie skopiowan gr PS2 i zamyka go. W ten sposb, dziki
uniemoliwieniu wykrycia wymuszonego otwarcia i zamknicia napdu, nastpuje
pokonanie systemu uwierzytelniania.
Najwiksz wad fizycznej podmiany dyskw jest szybsze zuywanie si napdw DVD,
spowodowane mechanicznym otwieraniem i zamykaniem napdu. W nowoczesnych
modchipach zamiast destrukcyjnej podmiany zastosowano sprztowe uwierzytelnianie
dyskw gier. W niektrych wykorzystuje si ukady FPGA oraz pamici Flash, pozwalajce uytkownikom na wprowadzanie aktualizacji i poprawek bdw poprzez
umieszczenie dysku w napdzie. Czci tych ukadw jest specjalny mechanizm,
wykonujcy program zapisany na karcie pamici konsoli PS2 w momencie wczenia

Rozdzia 7. Hacking konsoli Playstation 2

235

zasilania. Zazwyczaj program ten jest innym programem adujcym, tym razem z graficznym interfejsem uytkownika, umoliwiajcym adowanie programw i narzdzi
z pyty CD na karcie pamici lub na dysku twardym. Na rysunku 7.1 zaprezentowano
modchip LisaZero (dostpny wycznie dla systemu PAL), w ktrym wykorzystano
ukad PLD QuickLogic ze zmodyfikowanym kodem adujcym.
Rysunek 7.1.
Modchip
LisaZero

W niektrych podrozdziaach niniejszego rozdziau zamieszczono przykady kodu rdowego. W wikszoci przykadw wykorzystano bibliotek open source PS2Lib
dostpn pod adresem http://ps2dev.sourceforge.net/ps2lib.html.
Oto kilka uwag na temat konwencji zastosowanych w kodzie:
 W pliku nagwkowym tamtypes.h zdefiniowano podstawowe typy

wykorzystywane w bibliotece PS2Lib. Litera , po ktrej wystpuje numer,


oznacza typ bez znaku o okrelonej liczbie bitw; litera  z numerem okrela
natomiast typ ze znakiem. Na przykad,  oznacza omiobitow liczb
cakowit ze znakiem, natomiast  trzydziestodwubitow liczb
cakowit bez znaku.

 W pliku tamtypes.h zdefiniowano makra umoliwiajce wygodny dostp

do rejestrw sprztowych. Przypominaj one makra 


oraz  
,
spotykane w programowaniu niskopoziomowym komputera PC. Makro 

jest synonimem instrukcji MIPS , zwracajcej trzydziestodwubitow liczb


odczytan spod okrelonego adresu (adres jest okrelony jako 32-bitowa
liczba cakowita bez znaku). Analogicznie, makro 
zapisuje
trzydziestodwubitow liczb pod wskazanym adresem. Kade z tych makr
reprezentuje odpowiedni instrukcj MIPS. Tak wic istniej makra 
,

, 
/ 
oraz 
/ 
, suce do odczytywania wartoci
liczb odpowiednio omio-, szesnasto- i szedziesicioczterobitowych.

Inynierowie i hakerzy zajmujcy si produkcj modchipw powicaj wiele czasu i pienidzy na prace nad wsteczn inynieri sprztu i testowaniem. Uzyskane przez nich
informacje prawie nigdy nie s ujawniane szerszemu gronu odbiorcw. Gwnym powodem jest obawa przed konkurencyjnymi producentami modchipw. Czasami tworz

Cz II Modyfikacje sprztowe

236

oni swoje rozwizanie na podstawie wstecznej inynierii produktu konkurencji lub


stosuj t sam technik. Chocia niektre informacje odkrywane w wyniku analizy
konsoli s przydatne tylko dla uytkownikw chccych pokona zabezpieczenia, wikszo przyda si kademu, kto chce tworzy wasny sprzt lub oprogramowanie dla
konsoli PS2. Mona tu wspomnie choby o ukadzie stykw i sygnaw procesorw,
szyn, portw rozszerze i o systemie BIOS.
Ukrywanie takich informacji utrudnia prac hakerom sprztowym i hobbystycznym
spoecznociom programistw. Jak przekonamy si w dalszej czci niniejszego rozdziau, posiadanie niektrych ukrytych informacji o sprzcie umoliwia lepsz kontrol nad systemem i uzyskanie dostpu do zaawansowanych metod debuggowania.
Moj gwn motywacj podczas tworzenia eksploita Independence (niezaleno)
patrz podrozdzia adowanie kodu z karty pamici byo umoliwienie pisania
oprogramowania na konsol PS2 bez koniecznoci fizycznego jej modyfikowania.

Otwieranie konsoli PS2


W tym podrozdziale podano wskazwki umoliwiajce zidentyfikowanie wersji pyty
gwnej konsoli PS2 oraz opisano czynnoci umoliwiajce rozmontowanie konsoli.

Wersje pyty gwnej


W czasie prowadzenia prac nad niniejsz ksik istniao 11 gwnych numerw wersji
konsoli PS2 oraz ponad dziesi wersji BIOS-u. Wersje pyty gwnej zwykle s
oznaczane liter V i numerem, na przykad V7. Numer wersji pyty zwykle okrela si
jako numer wersji PS2. Numery rozpoczynaj si od V0 pierwszej wersji konsoli PS2
wyprodukowanej w Japonii.
Firma Sony aktualizuje wersje konsoli PS2 z kilku powodw:
 aby poprawi bdy w sprzcie i oprogramowaniu;
 aby umieci oddzielne urzdzenia w oddzielnych ukadach po to,

by zmniejszy koszty produkcji;


 aby zastosowa nowe mechanizmy zabezpiecze.

Problem z gwnymi wersjami pyty gwnej polega na tym, e wraz ze zmian wersji
zmienia si fizyczne rozmieszczenie elementw na pycie. Oznacza to, e instrukcje
wyszukania okrelonego komponentu lub punktu pomiarowego dla pyty V1 s inne ni
dla V7. Ukad pyt niektrych wersji (np. V5 i V6) jest zbliony, a zatem, w takim
przypadku instrukcje bd takie same. Modyfikacje opisane w niniejszym rozdziale zostay wykonane dla konsoli PS2 w wersji V4. Posiadacze innych wersji konsoli bd
musieli dostosowa instrukcje do swoich pyt gwnych. Tam, gdzie to moliwe, bd si
stara wskaza rnice pomidzy pytami poszczeglnych wersji.

Rozdzia 7. Hacking konsoli Playstation 2

237

Identyfikacja pyty gwnej


Aby znale numer wersji konsoli PS2, wykonaj nastpujce czynnoci:
 obr konsol PS2 i policz kwadratowe osony rub na dolnej krawdzi

obudowy oraz w pobliu gniazda rozszerze (lub PCMCIA);


 spjrz na naklejk w tylnej czci obudowy konsoli PS2. Najpierw przeczytaj

tekst znajdujcy si za napisem Model Number (numer modelu). Nastpnie


zanotuj dwie pierwsze cyfry numeru seryjnego oraz dwucyfrowy kod daty
(rysunek 7.2).
Rysunek 7.2.
Numer modelu,
numer seryjny
i kod daty

 Poszukaj fizycznych cech odrniajcych okrelony typ konsoli PS2.

Na przykad, w gniazdo PCMCIA s wyposaone tylko konsole V0 (w wersji


japoskiej); pozostae posiadaj gniazdo rozszerze umoliwiajce podczenie
wewntrznego dysku twardego. W konsolach w wersji V9 i wyszych nie
ma portu IEEE 1394 (obok portw USB), a w niektrych, pomidzy
przyciskami Reset i Eject zamontowano odbiornik podczerwieni.
 Konsole o numerze modelu SCPH-10000 lub SCPH-15000 oraz takie, ktre

maj gniazdo PCMCIA zamiast gniazda rozszerze, to urzdzenia w wersji V0.


 Konsole z dziesicioma rubami w dolnej czci obudowy to urzdzenia V1, V2

lub V3. Dokadny numer wersji mona stwierdzi posugujc si informacjami


w tabeli 7.1.
 Konsole z omioma rubami w dolnej czci to urzdzenia w wersji V4 lub

nowsze. Konsole V4 to modele o numerach od SCPH-30000 do SCPH-30006


oraz od SCPH-35001 do SCPH-35006. Jeeli na wewntrznej stronie pokrywy
gniazda rozszerze zamontowany jest metalowy ekran, najprawdopodobniej
mamy do czynienia z konsol wanie w tej wersji.
 Konsole PS2 w wersji V5 lub V6 (wersje te nie rni si znaczco pod wzgldem

wewntrznej budowy) to modele o numerach od SCPH-30000R do SCPH-30006 R


oraz od SCPH-30000 do SCPH-30004. W celu odrnienia konsoli w wersji V5
lub V6 od konsoli V4 naley zdj pokryw gniazda rozszerze i odszuka
niewielk rub w grnej czci gniazda, w pobliu jego lewej strony. Jeli
znajdziemy tak rub, oznacza to, e mamy do czynienia z wersj V5 lub V6.
Dodatkowo wntrze pokrywy gniazda rozszerze dla konsoli V5 lub V6 nie
jest pokryte metalowym ekranem.

Cz II Modyfikacje sprztowe

238
Tabela 7.1 Identyfikacja konsol PS2 w wersjach V1, V2 i V3
Wersja

Numer seryjny (pierwsze dwa znaki)

Kod daty

V1

U1

0D

V2

U0

0D

V3

U1

1A

V3

U2

0D

 Konsole o numerach modeli od SCPH-39000 do SCPH-39004 lub model

SCPH-37000 to urzdzenia w wersji V7.


 Jeeli konsola PS2 pochodzi z Japonii, a jej numer to SCPH-39000 lub

SCPH-39006, prawdopodobnie jest to wersja V8. Pyty gwne konsol


w wersjach V7 i V8 nie rni si znaczco pomidzy sob.
 Jeeli numer modelu mieci si w zakresie od SCPH-50000 do SCPH-50004,

a kod daty jest rny od 3D, mamy do czynienia z konsol w wersji V9. Jeeli
kod daty to 3D, nasza konsola to V10. W konsolach V9 i V10 nie ma portu
IEEE 1394, a w niektrych pomidzy przyciskami Reset i Eject zamontowany
jest port podczerwieni.

Otwieranie konsoli
Pierwsz trudnoci jest dostanie si do pyty gwnej. Otwarcie konsoli PS2 dla kogo, kto nigdy przedtem tego nie robi, moe by trudne. Instrukcje podane poniej
dotycz konsoli V4, a zatem by moe trzeba je nieco zmodyfikowa dla konsol wyprodukowanych po ukazaniu si tej wersji. Niektre z opisanych tu czynnoci zupenie nie pasuj do modeli w wersji V3 i wczeniejszych.
Ryzyko uszkodzenia sprztu

Na pycie gwnej konsoli PS2 i na podczonych do niej ukadach znajduje si wiele


elementw wraliwych na adunki elektrostatyczne. Dotknicie elementw znajdujcych si wewntrz obudowy bez uprzedniego uziemienia moe spowodowa ich
uszkodzenie. Najatwiejsz metod wasnego uziemienia jest zakupienie antyelektrostatycznej opaski na nadgarstek i podczenie jej do masy. Innym sposobem
jest dotknicie metalowego przedmiotu (np. kaloryfera) bezporednio przed dotkniciem pyty gwnej
1. Obr konsol PS2 tak, aby jej dolna obudowa bya skierowana w gr.

Powiniene ujrze osiem lub dziesi kwadratowych wgbie. S to osony


rub mocujcych obudow. Osony te naley usun, podwaajc paznokciem
lub paskim wkrtakiem (rysunek 7.3).
2. Za pomoc wkrtaka odkr ruby mocujce obudow. Niektre ruby mog

odkrca si ciko ze wzgldu na klej uyty do montau. Naley obrci je


energicznie do chwili usyszenia trzasku. Teraz ruby powinny ju odkrca
si bez oporu.

Rozdzia 7. Hacking konsoli Playstation 2

239

Rysunek 7.3.
Usuwanie oson
rub

3. Jeeli na obudowie przyklejona jest plomba gwarancyjna (zwykle obok zcza

A/V z tyu obudowy), zdejmij j.


4. Ponownie obr konsol PS2 i ustaw j w taki sposb, aby gniazdo rozszerze

znalazo si po lewej stronie, a zcze A/V po prawej. Powoli podnie grn


cz obudowy. W celu oddzielenia od ukadu joypada oraz napdu DVD,
trzeba przesun j nieco do przodu. Nie powinnimy podnosi obudowy zbyt
szybko, poniewa jest ona w dalszym cigu poczona z panelem przyciskw
Reset i Eject (rysunek 7.4).
Rysunek 7.4.
Zdejmowanie
grnej osony
obudowy

5. Zdemontuj panel przyciskw Reset (Eject) poprzez pocignicie go do chwili

usyszenia trzasku. Wycignij panel przyciskw poprzez otwr w obudowie.


Po go obok konsoli, pozostawiajc poczenie za pomoc tamy.
6. Odkr dwa wkrty mocujce panel joypada.
7. Odkr wkrt znajdujcy si po prawej stronie moduu wentylatora.

Nie odkrcaj wkrtu znajdujcego si bliej napdu DVD.


8. Ostronie podnie modu. Pod nim, pomidzy zczem dysku optycznego

a zczem A/V, znajduje si kolejna ruba odkr j. Wentylator jest


poczony z pyt gwn, a zatem zbyt szybkie podniesienie moduu moe
spowodowa uszkodzenie poczenia.
9. Przytrzymujc modu joypada i wentylatora odwr konsol PS2. Upewnij

si, e panel przedni jest skierowany w twoim kierunku. Powiniene teraz


bez trudu podnie doln cz obudowy PS2. Od j na bok.

Cz II Modyfikacje sprztowe

240

10. Konsol po wykonaniu powyszych czynnoci pokazano na rysunku 7.5.

Zielona pytka drukowana po lewej to zasilacz. Odkr cztery wkrty,


ktre go mocuj.
Rysunek 7.5.
Dolna cz
konsoli PS2
z widocznym
zasilaczem

11. Zasilacz jest poczony z pyt gwn konsoli PS2 za pomoc czterostykowego

zcza. Ostronie podwa zasilacz, aby go rozczy. Na pycie znajdziesz


niewielkie, dwuprzewodowe zcze, czce wentylator z pyt gwn.
Pocignij za to zcze, przytrzymujc przewody jak najbliej pyty gwnej.
Od zasilacz i modu wentylatora na bok.
12. Zdejmij plastikow pytk z grnej czci metalowej osony. Zdemontuj rwnie

metalow obudow wewntrznego dysku twardego (zobacz rysunek 7.6).


Rysunek 7.6.
Metalowa osona
u dou

13. Odkr osiem maych rubek. Cztery spord nich znajduj si pod plastikow

pytk. Dwie dodatkowe rubki mocuj zcze gniazda rozszerze, a ostatnie


dwie znajduj si po prawej stronie metalowej osony, nad napdem DVD.
Odkr ma czarn rubk znajdujc si pod napdem DVD.
14. Do napdu DVD przymocowana jest za pomoc dwch wypustek na dole

i jednej z przodu dua metalowa osona. Podwa wypustki i ostronie


zdejmij oson.
15. Pyt gwn mona podeprze po lewej stronie w pobliu zcza A/V. Ja jako

podprki uyem osony gniazda rozszerze (zobacz rysunek 7.7).

Rozdzia 7. Hacking konsoli Playstation 2

241

Rysunek 7.7.
Dolna cz
pyty gwnej
konsoli PS2

Konsola PS2 jest teraz cakowicie rozmontowana; mona zatem przystpi do wykonywania modyfikacji!

Instalacja portu szeregowego


W przypadku systemw wbudowanych port szeregowy czsto stanowi jedyny sposb
komunikacji z systemem. Mona go wykorzysta do adowania programw, odbierania
komunikatw o stanie urzdzenia i debuggowania programw uruchomionych w systemie. Podobnie jak w przypadku wikszoci ukadw SoC (System on Chip system
w jednym ukadzie), w procesorze Emotion Engine (EE) zamontowany jest szeregowy
port wejcia-wyjcia, wykorzystywany wewntrznie przez jdro systemu EE do wyprowadzania komunikatw diagnostycznych oraz informacji o statusie, a take do uruchamiania debuggera jdra. Wicej informacji na temat systemu EE konsoli PS2 mona
znale w podrozdziale Przegld systemu PS2 blisko koca niniejszego rozdziau.
Port SIO mona wykorzysta w tworzonym przez nas oprogramowaniu do wyprowadzania komunikatw debuggera lub w celu obsugi debuggera zdalnego, na przykad GDB
(http://sources.redhat.com/gdb). Wykorzystujc port SIO, mona take uruchomi
konsol w systemie Linux dla PlayStation2. Gwn korzyci z zastosowania tego
portu w porwnaniu ze standardowym kablem USB lub kart sieciow PS2 jest
fakt, i zapewnia on bezporednie poczenia z systemem EE, podczas gdy w innych
wspomnianych metodach wykorzystywany jest procesor wejcia-wyjcia (IOP). W przypadku awarii procesora wejcia-wyjcia lub wystpienia innych problemw, nie ma
moliwoci uzyskania danych z systemu EE. Dodatkowo, kabel SIO, ktry wykonamy,
zapewnia do szybk transmisj z prdkoci do 115,2 kb/s.
Do wykonania kabla potrzeba jedynie piciu przewodw, ktre naley przylutowa
do pyty gwnej konsoli PS2 oraz prostego ukadu interfejsu, wymagajcego poczenia z 15 punktami.

Cz II Modyfikacje sprztowe

242

Przygotowania
W tabeli 7.2 zestawiono elementy potrzebne do wykonania kabla SIO oraz pyty interfejsu, a na rysunku 7.8 zaprezentowano fotografi elementw. Ukad MAX3323EEPE
mona zamwi na stronie WWW firmy Maxim (www.maxim-ic.com). Naley pamita, aby zamwi wersj ukadu w obudowie DIP. Pozostae elementy mona znale
w sklepach elektronicznych (take w sklepach internetowych zajmujcych si sprzeda czci elektronicznych).
Tabela 7.2. Lista elementw
Liczba sztuk

Element

Uwagi

MAX3323EEPE

Maxim, www.maxim-ic.com

Kondensator monolityczny 0,1 F

eskie zcze DB9

Plastikowa obudowa zcza DB9

16-stykowa podstawka pod ukad scalony

Pytka drukowana

Przewd 30AWG

o dugoci okoo 30 cm

Kabel szeregowy DB9

opcjonalnie

Piciostykowe zcza mskie i eskie w obudowie


plastikowej

opcjonalnie

Rysunek 7.8.
Materiay
potrzebne
do wykonania
kabla SIO

Kolory przewodw wybrane do zrealizowania poczenia zestawiono w tabeli 7.3.


Tabela 7.3. Kolory przewodw w kablu szeregowym
Kolor

Sygna

Czerwony

+3.3 V (VCC)

Czarny

Masa (GND)

Biay

Napicie zasilajce procesor EE (VCORE)

Niebieski

EE_TXD oraz PC_TXD

Zielony

EE_RXD i PC_RXD

Rozdzia 7. Hacking konsoli Playstation 2

243

Wykonywanie projektu
Ryzyko uszkodzenia sprztu

Na pycie gwnej konsoli PS2 znajduje si wiele montowanych powierzchniowo elementw wraliwych na temperatur. Nie naley uywa lutownic o mocy przekraczajcej 15 W. W przypadku lutownicy o regulowanej mocy przed lutowaniem upewnij si,
e zostaa nastawiona na warto 15 W.

Pyt gwn konsoli PS2 naley ustawi tak, aby zcze A/V znajdowao si bliej nas,
a zcze karty pamici dalej. Sposb uzyskania dostpu do pyty gwnej konsoli PS2
szczegowo opisano w podrozdziale zatytuowanym Otwieranie konsoli PS2. Pyt
gwn w wersji V4 w tym pooeniu pokazano na rysunku 7.7. Rozpoczniemy od
przymocowania przewodw czcych pyt PS2 z kablem szeregowym:
1. Odszukaj zacisk +3.3 V. Pooenie tego zacisku na pycie V4 pokazano

na rysunku 7.9. W wikszoci witryn WWW powiconych instalacji


modchipw (np. www.dms3.com) mona znale ilustracj pooenia zacisku
+3.3 V dla innych wersji pyt gwnych. Przylutuj jeden koniec czerwonego
przewodu do wskazanego na ilustracji punktu.
Rysunek 7.9.
Pooenie zacisku
+3.3 V (VCC)

2. Po lewej stronie pyty gwnej wida litery GH-, po ktrych nastpuje

trzycyfrowa liczba. W pobliu tego obszaru znajduje si prostoktne pole,


ktre wykorzystamy jako mas. Pooenie tego pola pokazano na rysunku 7.14.
Na prostokcie mog by widoczne lady korozji. Przylutuj do wskazanego
punktu jeden koniec czarnego przewodu.
3. Obszar z prawej strony tekstu to punkt znajdujcy si bezporednio poniej

ukadu EE (zamontowanego po drugiej stronie). Obszar ten jest otoczony


kilkoma maymi kondensatorami, a w rodku znajduje si kilka duych
kondensatorw. W prawym grnym rogu ukadu EE mona zauway cztery
uoone pionowo srebrne pola lutownicze. Pomidzy grnym polem
a pozostaymi trzema jest odstp; jest to port SIO ukadu EE (rysunek 7.10).

Cz II Modyfikacje sprztowe

244
Rysunek 7.10.
Pooenie masy
(GND) i portu
SIO ukadu EE

4. Najtrudniejsze bdzie wyprowadzenie pierwszego punktu z portu SIO ukadu

EE: bdzie to styk EE_RXD. Grne kwadratowe pole lutownicze portu SIO
to styk EE_TXD. Bezporednio nad stykiem EE_TXD znajduje si przelotka
kontaktowa (ang. via) styku EE_RXD. Na rysunku 7.11 pokazano zblienie
przelotki EE_RXD, pola EE_TXD oraz kondensatora VCORE. Naley zachowa
ostrono, aby nie podczy si do niewaciwej przelotki kontaktowej
w obszarze poczonym z niewielkim rezystorem. Przelotka styku EE_RXD
nie jest poczona z adnym elementem po tej stronie pyty. Ostronie
przylutuj jeden koniec zielonego przewodu do omawianej tu przelotki.
Ryzyko uszkodzenia sprztu

Przelotka kontaktowa (ang. via) to niewielki, okrgy otwr w pycie gwnej. Zazwyczaj suy do czenia jednej warstwy lub strony obwodu drukowanego z drug stron. W wykonywanej modyfikacji jeden z punktw (EE_RXD) jest podczony do niewielkiej przelotki kontaktowej. Naley zwrci uwag na to, e przelotki kontaktowe rni
si od pl lutowniczych (ang. pad), czyli niewielkich kwadratowych lub okrgych
punktw pokrytych cyn.
Poniewa przelotki cz rne warstwy pyty gwnej, ich uszkodzenie moe spowodowa uszkodzenie wielu warstw, a tym samym zniszczenie caej pyty gwnej. Moe
si tak zdarzy np. w przypadku zbytniego nagrzania przelotki. Aby unikn uszkodzenia pyty podczas czenia styku EE_RXD, naley wykona nastpujce czynnoci:
1. Za pomoc wkrtaka jubilerskiego delikatnie zdrap cyn osaniajc przelotk.
2. Na past lutownicz na odsonit przelotk.
3. Na niewielk ilo cyny na lutownic i szybko dotknij ni do przelotki tak,
aby cyna spyna z lutownicy do przelotki.
4. Pokryj cyn przewd, ktry bdzie uyty do wyprowadzenia sygnau EE_RXD.
5. Na niewielk ilo ywicy na pokryty cyn przewd.
6. Przykadajc pokryty cyn przewd do grnej czci przelotki, dotknij lutownic
do kropli cyny na przelotce tak, aby poczya si z pokrytym cyn przewodem.
Podczas wykonywania tej czynnoci naley jak najkrcej podgrzewa przelotk
jednak wystarczajco dugo, aby zapewni dobre poczenie lutowane
pomidzy przewodem a przelotk.
5. Zlutuj jeden koniec niebieskiego przewodu z kwadratowym polem

lutowniczym styku EE_TXD, take oznaczonym na rysunku 7.11.

Rozdzia 7. Hacking konsoli Playstation 2

245

Rysunek 7.11.
Napicie VCORE
oraz sygnay
EE_TXD
i EE_RXD

6. Ostatni punkt, jaki naley wyprowadzi z pyty, to napicie +1,7 V, znane

take jako napicie VCORE. Mona je wyprowadzi z jednej z nek czarnego


lub beowego kondensatora znajdujcego si pod ukadem EE. Zazwyczaj
mona go znale obok drugiego kwadratowego pola lutowniczego, jak pokazano
na rysunku 7.11. Przylutuj jeden koniec biaego przewodu do nki kondensatora
w miejscu oznaczonym maym beowym punktem na pycie gwnej.
7. Po podczeniu wszystkich piciu przewodw (rysunek 7.12) przytwierd

je do pyty gwnej za pomoc tamy maskujcej lub kleju epoksydowego,


aby zabezpieczy je przed zerwaniem. W przypadku pyty gwnej w wersji
V4 lub wyszej, po lewej stronie znajdziesz wycicie, przez ktre przechodz
kable wcznika zasilania. Przeprowad przewody przez to wycicie tak, aby
wychodziy z lewej strony pyty PS2 (rysunek 7.13).
Rysunek 7.12.
Przewody
przylutowane
do portu SIO

8. Mona teraz przystpi do ponownego zmontowania konsoli PS2. Po zdjciu

metalowej osony dolnej czci pyty gwnej mona zauway niewielki otwr
montaowy w obudowie, znajdujcy si pomidzy zczem A/V a zczem
optycznym. Otwr ten jest wykorzystywany w celu przymocowania konsoli
PS2 do wywietlacza. Jeeli chcesz zamontowa kart interfejsu na zewntrz
konsoli PS2, moesz przeprowadzi przewody przez ten otwr pod moduem
wentylatora i wcznika zasilania. Sposb wyprowadzenia przewodw pokazano
na rysunku 7.14. Aby zakoczy skadanie konsoli, wykonaj w odwrotnej
kolejnoci czynnoci opisane w podrozdziale Otwieranie konsoli PS2.

Cz II Modyfikacje sprztowe

246
Rysunek 7.13.
Pyta gwna
przygotowana
do zmontowania

Rysunek 7.14.
Gotowe
piciostykowe
zcze portu SIO

Jeeli zdecydowae si na uycie piciostykowego zcza w plastikowej obudowie,


w tym momencie powiniene przylutowa przewody do jego eskiej czci. W takim
przypadku, po przymocowaniu przewodw do gniazda naley poczy je za pomoc
tamy izolacyjnej albo koszulki termokurczliwej. Piciostykowe gniazdo podczone
do przewodw pokazano na rysunku 7.14.
Po wyprowadzeniu przewodw z wntrza konsoli PS2 nadszed czas, aby wykona
zewntrzn kart interfejsu. Schemat karty pokazano na rysunku 7.15. Na zczu DB9
szeregowego kabla komputera PC sygna PC_RXD bdzie poczony ze stykiem 2,
PC_TXD ze stykiem 3, a GND ze stykiem 5.
Poniewa do poczenia karty interfejsu z konsol uyem piciostykowego zcza, na
jednym kocu karty zamontowaem wtyk tego zcza, natomiast na drugim przewody do
utworzenia szeregowego kabla komputera PC. Do wykonania kabla uyem starego
kabla szeregowego DB9, od ktrego odciem obie kocwki. Nastpnie odizolowaem koce przewodw, aby przylutowa je z jednej strony do karty interfejsu, a z drugiej do eskiego zcza DB9. Widok gotowego interfejsu z gry i z dou pokazano na
rysunkach 7.16 i 7.17.

Rozdzia 7. Hacking konsoli Playstation 2


Rysunek 7.15.
Schemat
interfejsu SIO

Rysunek 7.16.
Widok karty
interfejsu SIO
z gry

Rysunek 7.17.
Widok karty
interfejsu z dou

247

Cz II Modyfikacje sprztowe

248

Testowanie
Aby przetestowa utworzon kart interfejsu, podcz j z jednej strony do komputera
PC, a z drugiej do konsoli PS2. Za pomoc programu terminalowego (np. HyperTerminal, dostarczanego wraz z systemem Windows) ustaw port szeregowy na 38400
bodw, 8 bitw danych, brak parzystoci, 1 bit stopu oraz wycz sprztowe sterowanie przepywem. Wcz zasilanie konsoli PS2. Jeli kabel dziaa poprawnie, na ekranie wywietl si komunikaty pokazane na rysunku 7.18.
Rysunek 7.18.
Komunikaty
ukadu EE

Jak to dziaa?
Podstaw dziaania tej modyfikacji jest wykorzystanie nieudokumentowanej funkcji
konsoli PS2 portu szeregowego ukadu EE. Szczegowe informacje dotyczce
portu SIO mona znale w podrozdziale Przegld systemu PS2. W standardowym
porcie szeregowym RS232 w komputerze PC zazwyczaj wykorzystuje si napicie
+/12 V do zdefiniowania logicznego zera oraz logicznej jedynki. Ukad EE jest zasilany napiciem +1,7 V, a zatem, gdybymy bezporednio poczyli zcza portu
SIO do portu szeregowego komputera PC, bez konwersji napicia, sygnay przesyane z komputera PC do ukadu EE mogyby uszkodzi urzdzenie. Ukad MAX3323
to konwerter poziomw, przeksztacajcy napicia wyjciowe generowane przez
ukad EE do poziomu wymaganego przez komputer PC i vice versa. Do zasilania ukadu MAX3323 potrzebne jest napicie +3,3 V, pobrane z konsoli PS2.

Rozdzia 7. Hacking konsoli Playstation 2

249

adowanie kodu z karty pamici


15 sierpnia 2003 r opublikowaem eksploit Independence (Niezaleno) dla konsoli
PS2, ktry umoliwia adowanie dowolnego oprogramowania zapisanego na standardowej karcie pamici za pomoc mechanizmu uruchamiania gier na konsol PS1.
Mona do tego wykorzysta dowoln gr konsoli PS1. Jedynym warunkiem jest zapisanie na karcie pamici z eksploitem niepowtarzalnego identyfikatora tytuu gry. W przypadku wczenia konsoli PS2 z gr PS1 umieszczon w napdzie DVD, eksploit przejmuje sterowanie w momencie, kiedy na ekranie pojawi si ekran powitalny z napisem
Sony Computer Entertainment. Eksploit mona take uruchomi poprzez umieszczenie
w napdzie DVD pyty z gr PS1 i jej rczne uruchomienie za pomoc przegldarki PS2.
Witryna www powicona eksploitowi Independence

Oficjalna witryna WWW eksploita Independence to www.0xd6.org/ps2-independence.html. Mona tu znale najnowsz jego wersj, a take informacje o sposobach zapisywania plikw na karcie pamici oraz konfigurowania eksploita w systemie Windows. Od czasu jego publikacji w internecie pojawio si wiele przewodnikw i instrukcji krok po kroku przedstawiajcych uruchamianie oprogramowania
zapisanego na kartach pamici. Niektre z tych programw to Naplink USB boot loader (http://naplink.napalm-x.com), Pukklink oraz ps2link (www.ps2dev.org, sekcja
Loaders), a take MediaPlayer, napisany przez grup
PS2Reality (www.ps2reality.net). Obecnie opracowano wiele innych programw.
Jak si okazao, wykorzystanie eksploita do zaadowania programu adujcego jest
najatwiejszym sposobem uruchamiania programw uytkownika na konsoli. Chocia termin eksploit brzmi nieco pompatycznie, faktem jest, e program ten
otworzy drzwi dla spoecznoci hobbystycznych programistw konsoli PS2.

Przygotowania
Najtrudniejsze w wykonaniu tego projektu jest zapisanie plikw na karcie pamici.
W tym celu mona wykorzysta obraz dysku o nazwie Exploit Installer, napisany
przez Nicholasa Van Veena. Aby to zrobi, mona posuy si technik podmiany
dyskw lub wykorzysta modchip opisany we wczeniejszej czci niniejszego rozdziau.
Przewodnik dotyczcy instalacji mona znale pod adresem http://ps2.consolevision.
com/ps2homebrew3.shtml.
Wybr odpowiedniej karty pamici

Eksploit Independence dziaa z kartami pamici do konsoli Sony PS2 lub kartami
innych firm obsugujcymi ukad MagicGate; nie dziaa natomiast z kartami pamici konsoli PS1 oraz z tymi, ktre nie obsuguj wspomnianego ukadu.

W przypadku braku innego sposobu zaadowania programu do konsoli PS2, mona


zakupi interfejs karty pamici podczany do komputera PC za pomoc kabla USB.
Taki interfejs mona zakupi w internecie, pod adresem www.lik-sang.com. Mona
te posuy si wyszukiwark, wpisujc w niej Playstation 2 oraz akcesoria.

Cz II Modyfikacje sprztowe

250

Wykonywanie projektu: przygotowanie pliku TITLE.DB


Aby umoliwi uruchomienie programu przez eksploit, naley wprowadzi identyfikator tytuu gry PS1 w pliku TITLE.DB, zapisanym na karcie pamici. Aby uatwi wykonanie tego zadania, opracowaem narzdzie uruchamiane z wiersza polecenia; nazwaem je titleman. Wykonywaln wersj tego narzdzia, przeznaczon dla systemu
Windows, mona pobra w sekcji Tutorials macierzystej strony Independence. Mona
te pobra rda tego narzdzia i samodzielnie je skompilowa.
Nie znam adnego narzdzia z graficznym interfejsem uytkownika, za pomoc ktrego mona by przetwarza plik TITLE.DB. Aby posugiwa si nim, trzeba zatem
umie uruchamia narzdzia wiersza polecenia. Mona na przykad wykorzysta
opcj Uruchom, dostpn w menu Start systemu Windows. Po wybraniu tego polecenia wywietli si okno dialogowe, w ktrym mona wpisa polecenie do wykonania i wcisn Enter, albo wpisa polecenie , ktre spowoduje wywietlenie
okna konsoli. W przypadku systemw uniksowych informacji o sposobie uruchamiania narzdzi wiersza polecenia naley poszuka w dokumentacji systemu.

Opcje programu titleman wyszczeglniono w tabeli 7.4. Najpierw naley skorzysta z opcji
, aby utworzy plik TITLE.DB na dysku i zapisa kod eksploita oraz kilka standardowych identyfikatorw tytuw.
Tabela 7.4. Opcje programu titleman
Opcja

Opis



Utworzenie pliku TITLE.DB i zainicjowanie eksploita



Dodanie co najmniej jednego identyfikatora tytuw do pliku TITLE.DB



Usunicie co najmniej jednego identyfikatora tytuw z pliku TITLE.DB



Wywietlenie wszystkich identyfikatorw tytuw zapisanych w pliku TITLE.DB



Okrelenie alternatywnego pliku wynikowego



Wywietlanie opisowych komunikatw statusowych

W treci narzdzia titleman mona znale wykonywalny kod na konsol PS2, uruchamiajcy plik BOOT.ELF z karty pamici. Plik BOOT.ELF jest zapisany w folderze
konfiguracyjnym konsoli, ktry mona przeglda za pomoc przegldarki konsoli PS2.
Nazwa tego folderu to:
 BADATA-SYSTEM dla konsol PS2 zakupionych w Ameryce Pnocnej;
 BEDATA-SYSTEM dla konsol PS2 zakupionych w Europie;
 BIDATA-SYSTEM dla konsol PS2 zakupionych w Japonii i innych krajach

azjatyckich.
Podczas przygotowania zrzutu gry (zobacz podrozdzia Zapisywanie pliku TITLE.DB na
karcie pamici) naley pamita, aby uy nazwy odpowiadajcej waciwemu regionowi geograficznemu.

Rozdzia 7. Hacking konsoli Playstation 2

251

Po utworzeniu pliku TITLE.DB dodajemy identyfikatory wszystkich gier konsoli PS1,


za pomoc ktrych chcemy uruchomi eksploit. Identyfikator tytuu zazwyczaj mona
znale pod ikon z ocen ESRB gry na zadrukowanej stronie pyty. Po odczytaniu identyfikatora z pyty, naley go przeksztaci na posta zrozumia dla konsoli PS2. Na przykad, na pycie z gr Street Fighter Alpha znajduje si identyfikator SLUS-00197. Aby
by on zrozumiay dla konsoli PS2, naley zamieni mylnik na znak podkrelenia
oraz wprowadzi kropk pomidzy trzeci a czwart cyfr w piciocyfrowej liczbie za
mylnikiem. Tak wic identyfikator SLUS-00197 naley przeksztaci na SLUS_001.97.
Identyfikator tytuu mona take odczyta z pliku SYSTEM.CNF po otwarciu pyty z gr
w komputerze PC. Warto w opcji  za znakiem rwnoci ) to wanie poszukiwany identyfikator. Poniewa jest zapisany w pliku SYSTEM.CNF, posiada ju waciwy format i nie trzeba go przeksztaca.
Po uzyskaniu identyfikatorw tytuw dla wszystkich gier dla konsoli PS1, ktre chcemy uruchomi, naley wprowadzi je do pliku TITLE.DB. Mona to zrobi pojedynczo
lub uy wsadowego trybu narzdzia titleman. Skadnia polecenia sucego do
wprowadzenia pojedynczego zapisu do pliku TITLE.DB jest nastpujca:
 
   
 

Zatem w moim przypadku, powinienem wpisa    !"#.


Znacznie wygodniejsze jest jednak uycie trybu wsadowego; umoliwia dodanie za
pomoc jednego polecenia wielu identyfikatorw tytuw. Aby skorzysta z trybu wsadowego, naley umieci wszystkie identyfikatory tytuw w oddzielnych wierszach
pliku tekstowego i uy opcji  z nazw pliku wsadowego poprzedzon symbolem @.
W pliku wsadowym mona umieszcza komentarze; s to wiersze rozpoczynajce si
od znaku rednika. Przykad pliku wsadowego pokazano na listingu 7.1.
Listing 7.1. Przykad pliku wsadowego programu titleman
 

  

 

  
!
 "
#
 $
 %!
 & 

 !
 & 
''
!(%
 


!
 " )
* 
 + ,
  -

Cz II Modyfikacje sprztowe

252

Polecenia wymagane do wprowadzenia pojedynczego tytuu do pliku TITLE.DB (Street


Fighter Alpha) zaprezentowano na listingu 7.2.
Listing 7.2. Polecenia do umieszczenia zapisu w pliku TITLE.DB
.  
 
.  
  !-

W przypadku popenienia bdu podczas dodawania identyfikatora lub w celu usunicia


wczeniej dodanego identyfikatora, naley skorzysta z opcji . Pojedyncze identyfikatory usuwa si z pliku TITLE.DB analogicznie do ich dodawania (rnica polega na
uyciu opcji  zamiast opcji ). Mona te skorzysta z trybu wsadowego.
Aby sprawdzi, jakie identyfikatory tytuw zostay dodane do pliku TITLE.DB,
mona wykorzysta opcj .

Wybr pliku BOOT.ELF


Wersja 0.1 eksploita aduje wykonywalny plik BOOT.ELF z karty pamici natychmiast
po przejciu sterowania przez eksploit. Plik ten jest zapisany w tym samym folderze
co plik TITLE.DB. Dla uytkownikw chccych tworzy wasne oprogramowanie dla
konsoli PS2, najlepszym programem BOOT.ELF jest ps2link program Open Source
umoliwiajcy adowanie programw przez kart sieciow konsoli PS2. Najnowsz
wersj programu ps2link mona pobra pod adresem www.thethirdcreation.net/tools
lub www.ps2dev.org (w sekcji Loaders).
Uytkownicy zainteresowani odtwarzaniem strumieni wideo, plikw MP3 oraz Ogg Vorbis
przez sie mog zainstalowa program MediaPlayer firmy PS2Reality. Podrczniki
objaniajce sposb wykorzystania programu MediaPlayer z eksploitem s dostpne
pod adresem www.ps2reality.net (uwaga: witryna jest hiszpaskojzyczna!).
Wreszcie, jeli kto chce uruchomi jedn ze starych gier na konsol Sega Genesis,
moe wykorzysta emulator konsoli Sega Genesis PGEN autorstwa Nicholasa Van
Veena. Emulator PGEN mona pobra z internetu; znajdziemy go m.in. pod adresem
http://pgen.gamebase.ca.
Aby wykorzysta dowolny z poprzednio wymienionych programw z eksploitem,
naley je odpowiednio skonfigurowa w taki sposb, aby zaadoway si natychmiast po przejciu sterowania przez eksploit. Niektre programy s rozprowadzane wraz ze szczegowymi instrukcjami w pliku README. Jeeli nie ma takich
instrukcji, naley zmieni nazw gwnego pliku ELF programu na BOOT.ELF (na
przykad z PGEN_11.ELF na BOOT.ELF).

Zapisywanie pliku TITLE.DB na karcie pamici


Po utworzeniu w pliku TITLE.DB listy wszystkich tytuw gier, za pomoc ktrych
chcemy uruchomi eksploit, naley zapisa ten plik na karcie pamici. Uzyskamy to
na kilka sposobw. Moemy na przykad zapisa plik:

Rozdzia 7. Hacking konsoli Playstation 2

253

 za pomoc programu Exploit Installer Nicholasa Van Veena. Skorzystanie

z tej metody wymaga zainstalowania modchipa lub zastosowania techniki


podmiany dyskw. Chocia technika podmiany dyskw jest skuteczna,
osobicie nie polecam jej stosowania, poniewa grozi to zniszczeniem
konsoli. Program Exploit Installer mona pobra pod adresem
www.ps2newz.net/forums/showthread.php?threadid=14803.
 za pomoc interfejsu kart pamici podczanego do komputera PC poprzez

port USB. Urzdzenia te umoliwiaj zapisanie programw z dysku komputera


PC na karcie pamici umieszczonej w interfejsie. Aby skorzysta z tej metody,
naley utworzy nowy zrzut gry i nada mu nazw Your System Configuration,
a nastpnie zapisa folder zrzutu odpowiadajcy regionowi geograficznemu,
w ktrym zakupiono konsol, albo otworzy istniejcy plik i zmieni jego
nazw. Po utworzeniu zrzutu gry, naley skopiowa do niego pliki TITLE.DB
i BOOT.ELF. Naley pamita, e nazwy plikw TITLE.DB oraz BOOT.ELF
musz skada si wycznie z wielkich liter; w innym przypadku eksploit nie
bdzie dziaa. Po utworzeniu zrzutu naley skopiowa go na kart pamici,
wykorzystujc oprogramowanie dostarczane wraz z interfejsem.
 za pomoc narzdzia nPort. Napalm grupa programistw, twrcw

programu Naplink, sucego do adowania programw poprzez port USB,


opracowaa take narzdzie nPort, umoliwiajce kopiowanie zrzutw gier
pomidzy komputerem PC a konsol PS2 przez istniejce poczenie USB
(nawizane za pomoc programu Naplink) albo przez kart sieciow
(w programie Pukklink lub ps2link). Na oficjalnej stronie WWW Independence
jest dostpne archiwum .npo (format obsugiwany przez nPort) zawierajce
wymagane pliki. Z witryny mona rwnie pobra przewodnik opisujcy
sposb wykorzystania programu nPort do zapisywania eksploita. Program
nPort jest dostpny pod adresem http://wire.napalm-x.com.

Niezaleno!
Po zapisaniu eksploita na karcie pamici w kart do konsoli PS2 i umie w napdzie
DVD dowoln gr, ktrej tytu umiecie w pliku TITLE.DB. Po zaadowaniu dysku
najpierw wywietli si biay ekran, a po krtkiej chwili ukae si ekran pocztkowy
programu BOOT.ELF. Jeeli uruchomi si zwyky emulator konsoli PS1, sprawd zawarto pliku TITLE.DB za pomoc opcji -l i upewnij si, czy nie popenie pomyki
w pisowni identyfikatora. Sprawd take, czy w napdzie znajduje si pyta z waciw
gr. Jeeli podczas adowania eksploita wywietli si czerwony ekran, upewnij si, e
umiecie plik BOOT.ELF w tym samym folderze, co plik TITLE.DB. Inne bdy, jakie mog wystpi podczas adowania, s specyficzne dla aplikacji zapisanej w pliku
BOOT.ELF.

Jak to dziaa?
Konsola PS2 umoliwia emulacj konsoli PS1 za pomoc kombinacji emulacji sprztowej i graficznego, programowego emulatora PS1 o nazwie PS1DRV. W przypadku prby zaadowania gry na konsol PS1 w konsoli PS2, przegldarka systemowa najpierw
uruchamia emulator PS1DRV z systemu BIOS. Emulator PS1DRV wykonuje kilka

254

Cz II Modyfikacje sprztowe

czynnoci konfiguracyjnych, takich jak ustawienie szybkoci dysku oraz wczytanie parametrw graficznych dla wybranej gry. Na koniec inicjuje emulator graficzny i przestawia procesor IOP w tryb konsoli PS1. Teraz sterowanie przejmuje procesor IOP, ktry aduje gr na konsol PS1 z dysku. Grafika jest emulowana za pomoc specjalnego kanau
SIF DMA w procesorze EE pomidzy procesorem IOP a emulatorem PS1DRV.
Po umieszczeniu dysku PS1 w konsoli PS2 przegldarka systemowa odczytuje identyfikator tytuu z zapisanego na dysku pliku o nazwie SYSTEM.CNF. W pliku tym podane
s take inne parametry adowania, takie jak domylny tryb wideo, dla ktrego napisano gr. Identyfikator tytuu gry jest przekazywany do emulatora PS1DRV, dziki
czemu mona wybra parametry graficzne dopasowane do danej gry. Jeeli przegldarka systemowa nie moe znale pliku SYSTEM.CNF na dysku PS1, do emulatora
PS1DRV przekazywana jest warto ???.
Kiedy emulator PS1DRV poszukuje parametrw grafiki dla okrelonej gry, przeszukuje trzy lokalizacje: wbudowan tabel, plik SYSTEM.CNF zapisany na dysku oraz
inny plik, zapisany na karcie pamici, noszcy nazw TITLE.DB. Ten ostatni znajduje
si w folderze systemowym, zarezerwowanym dla programw BIOS-u. W przypadku
konsol PS2 zakupionych w Japonii lub Azji, folder ten ma nazw BIDATA-SYSTEM;
w przypadku konsol przeznaczonych dla krajw europejskich jest to folder BEDATASYSTEM, natomiast w Ameryce Pnocnej nazywa si on BADATA-SYSTEM.
Na pomys stworzenia eksploita Independence wpadem analizujc procedury przetwarzajce identyfikator tytuu z pliku TITLE.DB. Gwna procedura adujca informacje z pliku TITLE.DB, ktr nazwaem     !
, suy do adowania pliku
TITLE.DB z karty pamici do pamici RAM. Procedura ta wywouje inna procedur
find_title_params(), ktrej zadaniem jest odszukanie identyfikatora tytuu w zaadowanym pliku TITLE.DB i zwrcenie cigu znakw z wartociami parametrw.
Warto zauway, e sposb zaadowania pliku TITLE.DB do pamici RAM powoduje, e implementacja eksploita jest dziecinnie atwa. Caa zawarto pliku TITLE.DB
jest adowana pod stay adres RAM 0x20800000. Oznacza to, e w pliku TITLE.DB
moemy umieci cay program, ktry przejmie sterowanie po zakoczeniu dziaania
eksploita i bdziemy dokadnie znali miejsce zaadowania tego programu!
Do procedury $   %&
s przekazywane trzy parametry: adres okrelajcy,
gdzie jest adowany plik TITLE.DB (   ), adres zmiennej acuchowej, pod ktry
zostan przekazane parametry (%&) oraz poszukiwany identyfikator tytuu (  
). Procedura wykonuje ptl przeszukujc kady wiersz wiersze s zakoczone znakiem wysuwu wiersza ('), powrotu karetki (()) lub kombinacj tych znakw
w poszukiwaniu identyfikatora tytuu. W przypadku znalezienia identyfikatora
przeszukiwana jest dalsza cz wiersza za znakiem rwnoci, a do znaku koca wiersza. Po osigniciu koca wiersza uzyskany acuch znakw jest kopiowany do zmiennej
acuchowej %&. Z tej operacji kopiowania skorzystamy w utworzonym eksploicie.
W idealnej sytuacji, rozmiar parametru powizanego z identyfikatorem tytuu powinien wynosi okoo 25 bajtw, cznie ze znakiem koca wiersza. W procedurze
     
do zapisania tej wartoci przydzielany jest bufor o rozmiarze 256 bajtw. Bufor ten jest zapisany w pamici RAM obok bardzo wanego rejestru ukadu EE
adresu powrotu, czyli rejestru *&. Kiedy w architekturze MIPS procedura wykonuje

Rozdzia 7. Hacking konsoli Playstation 2

255

inn procedur, zapisuje rejestr *& do pamici RAM, poniewa procesor automatycznie aktualizuje rejestr *& w taki sposb, e wskazuje na adres ostatniej instrukcji procedury wywoujcej. Po zakoczeniu wykonywania procedury wywoywanej, rejestr *&
w dalszym cigu wskazuje na t instrukcj, a zatem przed wyjciem z procedury naley
odtworzy rejestr *& z pamici RAM. W procedurze      
rejestr *& zapisywany przed wywoaniem procedury $   %&
znajduje si przed
miejscem przydzielonym do zapisania wartoci cigu znakw %&.
Kiedy procedura $   %&
kopiuje acuch znakw do zmiennej %&,
wykorzystuje funkcj jzyka C  &%+
, ktra kopiuje cig dowolnej dugoci do innego
cigu. W funkcji  &%+
nie jest przeprowadzane sprawdzanie rozmiaru cigu, a zatem funkcja kopiuje cigi do momentu napotkania znaku , (znak o kodzie ASCII 0).
Oznacza to, e gdybymy skonstruowali w pliku TITLE.DB cig znakw o rozmiarze
przekraczajcym 256 bajtw przydzielonych na zmienn %&, moglibymy zastpi zapisan warto rejestru *& (poniewa jest ona zapisana w pamici RAM za
wartoci zmiennej %&). Warto, ktra zastpi adres zapisany w rejestrze *&,
stanie si adresem nastpnej instrukcji wykonywanej po zakoczeniu procedury  
    
. Moe to by dowolny adres w pamici RAM poprawny dla ukadu EE.
Ten rodzaj eksploita, wykorzystujcy przepenienie bufora, jest powszechnie wykorzystywany w programach, w ktrych nie wykonuje si sprawdzenia rozmiaru cigw
znakw lub innych wartoci adowanych z plikw danych. Ma on jednak istotn wad, polegajc na tym, e bardzo atwo zapobiec moliwoci jego uycia. Dotyczy to
rwnie eksploita Independence emulatora PS1DRV. Wykorzystujc standardow
funkcj C  &%+
, mona okreli maksymaln dugo kopiowanego acucha
znakw. Gdyby firma Sony uya funkcji  &%+
z maksymaln dugoci 256
znakw, utworzenie eksploita nie byoby moliwe.
A zatem, na jaki adres ustawimy rejestr *& podczas konstruowania cigu znakw w pliku
TITLE.DB? Jak pamitamy, procedura      
aduje ca zawartoci
pliku TITLE.DB do pamici RAM pod stay adres 0x20800000. Rejestr *& moemy
ustawi na dowolny adres za adresem adowania pliku TITLE.DB. W eksploicie Independence wykorzystaem stay adres 0x20810110, co pozwala na zapisanie w pliku TITLE.DB okoo 200 wpisw. Po zakoczeniu dziaania procedury      
,
rejestr *& wskazuje na ten adres, a mj kod przejmuje sterowanie nad konsol PS2.

Inne projekty: niezalene dyski twarde


Wraz z wprowadzeniem na rynek pakietu PlayStation 2 Linux Kit (w maju 2002 r.)
oraz oficjaln premier karty sieciowej (w sierpniu 2002), wprowadzono obsug dysku twardego dla konsoli PS2. Oprcz oficjalnego twardego dysku firmy Sony, dostarczanego wraz z pakietem Linux Kit, uytkownicy konsoli PS2 mog wykorzystywa dowolne dostpne na rynku dyski twarde, ktre mona podczy do zcza IDE karty
sieciowej. Cho firma Sony zapowiedziaa oficjaln premier dysku twardego dla
uytkownikw (tych, ktrzy nie zakupili pakietu Linux Kit) na marzec 2004 roku,
hobbyci ju duo wczeniej pisali oprogramowanie wykorzystujce dyski twarde.

Cz II Modyfikacje sprztowe

256

W listopadzie 2003 r. Nicholas Van Veen oraz kilku innych programistw (w tym ja
sam) opracowali bibliotek libHDD zbir bibliotek i sterownikw umoliwiajcych wykorzystywanie dysku twardego w programach uytkownikw. W bibliotece
tej (dostpnej pod adresem http://ps2dev.org/kb.x?T=967) zawarta jest take obsuga
oficjalnego systemu plikw firmy Sony dla programw wykorzystujcych dysk twardy.
Dziki bibliotece libHDD, programy przeznaczone do uruchomienia z karty pamici
mog wykorzystywa dane lub nawet inne programy zapisane na dysku twardym.
Otwiera to drog dla wielu projektw, od emulatorw obsugujcych adowanie zrzutw
gier z dysku twardego (np. PGEN) do programw multimedialnych sucych do
odtwarzania plikw audi o i wideo zapisanych na dysku twardym. Mona przypuszcza, e w miar pojawiania si coraz wikszej liczby programw obsugujcych dysk
twardy, konsola PS2 zyska wiksze uznanie jako platforma hackingu sprztowego.

Przegld systemu PS2


Konsola PS2 jest systemem o architekturze rwnolegej wysoka wydajno uzyskiwana jest dziki podziaowi zada programw na wiele procesorw i koprocesorw.
Logika typowej gry na konsol PS2 wykonuje si na gwnym procesorze, dane wejciowe wprowadzane przez uytkownika s obsugiwane na procesorze pomocniczym, a trjwymiarowe przeksztacenia geometryczne na jednym z dwch ultraszybkich koprocesorw. Dla porwnania, w tradycyjnej architekturze komputera PC, do obsugi
danych wejciowych uytkownika, logiki gry oraz przetwarzania grafiki wykorzystywany jest tylko jeden procesor. Oczywicie nowoczesne karty graficzne 3D s
wyposaone w szybkie, programowalne procesory graficzne, ktre przejmuj obliczenia
zwizane z owietleniem oraz przetwarzaniem wierzchokw, odciajc w ten sposb
procesor gwny.

Ukad Emotion Engine


Zasadniczym elementem konsoli PS2 jest 64-bitowy procesor MIPS o nazwie Emotion
Engine EE (rysunek 7.19). Procesor EE jest poprzednikiem linii procesorw SoC
(System on a Chip system w jednym ukadzie) TX79 firmy ArTile Micro. W procesorach SoC wszystkie urzdzenia kocowe zarzdzajce systemem s zintegrowane
w jednym ukadzie. Na przykad w popularnym ukadzie rodziny TX79 TMPR7901
zintegrowano midzy innymi gwny procesor MIPS, kontroler pamici SDRAM,
kontroler szyny PCI oraz kontroler sieci Ethernet. Najwiksz zalet procesorw SoC
s zmniejszone koszty produkcji oraz wiksza wydajno zintegrowanych peryferiw.
W architekturze SoC zazwyczaj wystpuje co najmniej jedna ultraszybka szyna wewntrzna, ktra komunikuje si z urzdzeniami zewntrznymi za pomoc wolniejszej,
wsplnej szyny systemowej.
Na procesor EE skadaj si nastpujce udokumentowane urzdzenia kocowe:
 procesor gwny MIPS R5900 (CPU);
 dwa procesory przetwarzania wektorw (VU lub VPU);
 procesor zmiennoprzecinkowy (FPU);

Rozdzia 7. Hacking konsoli Playstation 2

257

Rysunek 7.19.
Procesor
Emotion Engine

 kontroler DMA (DMAC);


 kontroler przerwa (INTC);
 programowalne zegary;
 interfejs pomocniczego procesora (SIF);
 dwa interfejsy procesorw VU (VIF);
 interfejs ukadu syntezy grafiki (GIF);
 procesor przetwarzania obrazw (IPU).

Mona take wymieni trzy urzdzenia nieudokumentowane:


 kontroler RDRAM [(R)DRAMC];
 szeregowy port wejcia-wyjcia (SIO, UART);
 interfejs JTAG (IEEE 1149.1).
Dokumentacja to doskonae rdo wiedzy

Szczegowa analiza wszystkich zintegrowanych urzdze kocowych ukadu EE


zajaby kilka rozdziaw. Podrczniki dostarczone wraz z pakietem PlayStation2
Linux Kit (www.playstation2-linux.com) s nieocenionym rdem informacji na temat dziaania procesora Emotion Engine oraz ukadu syntezy grafiki. Uytkownicy, ktrzy nie s wacicielami pakietu, znajd podstawowe informacje na temat procesora Emotion Engine w podrcznikach dostarczanych z procesorem TX79 potomkiem
ukadu EE. Podrczniki te mona pobra ze strony pod adresem www.semicon.toshiba.
co.jp/eng/index.html. Przewodniki programowania konsoli PS2 s natomiast dostpne pod adresami www.ps2dev.org oraz www.oopo.net/consoledev.

Szeregowy port wejcia-wyjcia


Port SIO jest realizacj szybkiego ukadu UART z omiobajtow kolejk FIFO dla transmisji oraz szesnastobajtow kolejk FIFO dla odbioru. Ukad obsuguje take standardowe sygnay CTS i RTS, wykorzystywane do sprztowego sterowania przepywem.
Chocia w konsolach PS2 dostpnych na rynku styki portu SIO nie s podczone,
BIOS ukadu EE oraz jdro systemu runtime wykorzystuj port SIO do wyprowadzania komunikatw o stanie urzdzenia podczas procesu adowania kodu w konsoli PS2.

Cz II Modyfikacje sprztowe

258

Port SIO nie jest udokumentowany w podrczniku uytkownika procesora EE. Z tego
powodu kod inicjalizacji oraz komunikaty wyjciowe odczytaem z BIOS-u konsoli PS2.
Mnstwo informacji o przerwaniach portu SIO oraz rejestrach sprztowych znalazem
w podrczniku Core Architecture Manual procesora Toshiba TX79. Okazuje si, e
podrcznik ten jest niemal identyczny z podrcznikiem Core User's Manual procesora EE, poza tym, e z tego drugiego usunito informacje dotyczce portu SIO.
Po przestudiowaniu BIOS-u, kodu obsugi portu SIO w jdrze oraz dostpnej dokumentacji i po napisaniu kilku testowych programw, mogem sporzdzi do dokadn
list rejestrw i definicji. Wikszo rejestrw portu SIO w ukadzie EE jest identyczna
z rejestrami tego portu w procesorze TX49, jednak nic nie wskazuje na to, e wystpuje
w nim obsuga DMA. Mona rwnie znale kilka rejestrw analogicznych do ukadu UART procesora TX7901. Map rejestrw portu SIO zaprezentowano w tabeli 7.5.
Tabela 7.5. Mapa rejestrw portu SIO
Adres

Nazwa

Opis

0x1000f100

')/0

Rejestr sterowania lini

0x1000f110

')0

Rejestr stanu linii

0x1000f120

')'10

Rejestr zezwolenia na przerwanie

0x1000f130

')'0

Rejestr stanu przerwania

0x1000f140

')2/0

Rejestr sterowania kolejk FIFO

0x1000f150

')"30

Rejestr sterowania szybkoci transmisji

0x1000f180

')42'2)

Rejestr kolejki FIFO transmisji

0x1000f1c0

')02'2)

Rejestr kolejki FIFO odbioru

Z podrcznika procesora TX79 dowiedziaem si, e jeli port SIO ma potrzeb przerwania dziaania procesora CPU, generuje wyjtek -. i ustawia 12 bit rejestru przyczyny (/. Procesor CPU dekoduje wwczas rejestr stanu procesora, aby okreli
przyczyn przerwania. Jdro procesora EE wykorzystuje wyjtek SIO jako mechanizm uruchamiania wbudowanego debuggera w jdrze.
Aby zainicjowa port SIO, naley najpierw zapisa do rejestru 0 () warto okrelajc liczb bitw danych i bitw stopu oraz informacj o wczeniu lub wyczeniu
kontroli parzystoci. Mona rwnie okreli rdo zegara, potrzebne do okrelenia
szybkoci transmisji. W nastpnym kroku obie kolejki FIFO s wyzerowane oraz
opcjonalnie wczane s przerwania. Na koniec naley obliczy dzielnik i warto
zegara potrzebne do okrelenia szybkoci transmisji. Na listingu 7.3 zaprezentowano
przykadowy kod inicjalizacji portu SIO z podan szybkoci transmisji i standardowymi parametrami 8N1 (8 bitw danych, bez kontroli parzystoci, 1 bit stopu).
Listing 7.3. Przykad kodu inicjalizacji portu SIO
5
+
')2/02041 $ 67 8
9:

 9
:

;
 2'2) 76
5
+
')2/00204 $ 67 8
:

; 2'2) 0 76
5
+
')2/04204 $ 67 8
:

; 2'2) 4 76
5
+
/</, !!  67 =>? :9:   
>
 9
 
9@>   ;  76

Rozdzia 7. Hacking konsoli Playstation 2

259

    &A @&

B
&A @ 67 C9
  9@>   ;  76
&% @ D  67 8
  @ 9
 9@>   ;  76
67 % @ E:  FG  @  H&G @
9   H9> G 9 :9

9
 /<  @ 9
 9@>   ;  76
:II(G ')/0
67 =JK9

:9 F H9
:L 76
:G ')'10
67 =9
:

;
 2'2) 76
:')2/02041M')2/00204M')2/04204G ')2/0
67 =JK9


;
 2'2) 76
:G ')2/0 
@ D /</,6@&
7 (
:F 
@ ND ( OO PP@ I 
@ 6D 
:@ II % M @G ')"30
Q

Sposb wysyania i odbierania znakw jest bardzo prosty: aby wysa znak, naley zapisa warto do rejestru 0 1'0'; aby go odebra, naley odczyta warto z tego rejestru. Trzeba rwnie sprawdzi rejestr 0 0), aby upewni si, czy w buforze 1 '0'
jest miejsce na kolejny znak lub czy w kolejce )1 '0' jest chocia jeden znak, ktry
mona odczyta. Kod sucy do wysyania i odbierania znakw przypominajcy
standardowe funkcje ANSI C % 
oraz . 
pokazano na listingu 7.4.
Listing 7.4. Przykad kodu wejcia-wyjcia portu SIO
  H&  
B
67 ":
 
& &9  :>    ; 76
:F 
:')'0 O $+ DD $%
@G ')42'2)

& 
Q
  

B
67 /9 : @&+9
02'2) ;
 ; > 9 R 76
+ :')'0 O $+

& @')02'2)
67 8:E

9 & L H & 1)2 76

& 
Q

Cz II Modyfikacje sprztowe

260

Procesor wejcia-wyjcia
Procesor wejcia-wyjcia (I/O processor IOP) zarzdza prac wikszoci wbudowanych i zewntrznych urzdze kocowych, wcznie z kartami pamici, jednostk
przetwarzania dwiku, kontrolerami oraz napdem DVD. Jest to struktura SoC ###from
LSI Logic###, opracowana na podstawie oryginalnej konsoli PlayStation (PS1), speniajca wszystkie gwne funkcje konsoli PS1 i zrealizowana w jednym ukadzie
scalonym. Rdze procesora IOP tworzy procesor MIPS R3000A, taktowany zegarem
36,864 MHz. Wewntrzna szybko procesora IOP stanowi w przyblieniu 1/8 szybkoci procesora EE taktowanego zegarem 294,9 MHz. Podczas emulacji sprztu PS1
procesor IOP dziaa z oryginaln szybkoci konsoli PS1 tzn. 33 MHz. Ukad IOP
moe bezporednio zaadresowa do 2 MB pamici RAM. Z urzdzeniami wewntrznymi i peryferiami zewntrznymi komunikuje si za pomoc szyny SBUS.

Interfejs procesora pomocniczego


Procesor IOP czasami okrela si jako procesor pomocniczy. W tym przypadku ukad EE
jest procesorem gwnym. Interfejs procesora pomocniczego (Sub-CPU Interface SIF)
jest szybkim poczeniem pomidzy procesorami IOP i EE, realizowanym poprzez
kana DMA. Dziki interfejsowi SIF, kady z procesorw moe przesya dane bezporednio do pamici RAM drugiego procesora. Najpopularniejszym zastosowaniem interfejsu SIF jest interfejs wywoania zdalnej procedury (Remote Procedure Call RPC),
umoliwiajcy procesorowi EE wywoywanie procedur w procesorze IOP. Procedury
te wykorzystuj niskopoziomowy sterownik sprztu, odpowiadajcy mechanizmowi RPC,
i za pomoc interfejsu SIF zwracaj dane do ukadu EE. W ten sposb ukad EE moe
odczytywa informacje z pliku znajdujcego si na dysku DVD nie przerywajc swojego
dziaania. Kiedy procesor IOP zakoczy obsug dania odczytu, generuje przerwanie
do procesora EE. Dodatkowo, dziki interfejsowi SIF, procesor IOP moe zaplanowa
wysyanie danych kontrolera do bufora w ukadzie EE co okres Vblank (vertical blank
dla urzdze dziaajcych w systemie NTSC ten czas wynosi 1/60 sekundy, co w przyblieniu jest rwne czasowi wywietlenia jednej ramki wideo). Ukad EE moe korzysta z tych danych bez koniecznoci wysyania jawnego dania co kad ramk.

Dodatkowe zasoby internetowe


 Oficjalna strona programu ps2dev: www.ps2dev.org mona w niej

znale przewodniki, przykady kodu, programy adujce i inne zasoby


uatwiajce pisanie oprogramowania dla konsoli PS2.
 The Third Creation: www.thethirdcreation.net strona miesicznych

pokazw demo. Mona tu znale doskonae demonstracje. Wszystkie


s napisane za pomoc oprogramowania open source. Gorco polecam
pobranie programw pisanych przez programist o pseudonimie adresd
nale do najlepszych.

Rozdzia 7. Hacking konsoli Playstation 2

261

 PlayStation 2 Linux Kit: www.playstation2-linux.com oficjalna strona

zestawu PlayStation 2 Linux Kit firmy Sony pakietu sprztu i oprogramowania


umoliwiajcego korzystanie z systemu Linux na konsoli PS2.
 Witryna WWW Dana Peori'ego: www.oopo.net/consoledev przykady

kodu i przewodniki, midzy innymi dotyczce grafiki oraz programowania


interfejsu SIF.
 Witryna WWW Lukasza Brunna: www.mouthshut.net strona macierzysta

libITO jednej z pierwszych bibliotek graficznych dostpnych dla


programistw PS2.

You might also like