[PS2] FreeMCBoot i ESR
Jak to działa?
Dla osób dociekliwych i ciekawych świata, poniżej krótki, dość ogólny opis działania FreeMCBoot przygotowany przez ffgriever-a, autora ESR (o którym więcej informacji na kolejnych stronach):
"Przedstawmy całą sprawę z punktu widzenia laika, bez zbędnych technicznych szczegółów i zamazujących obraz całości specjalistycznych terminów.
Jak wiadomo nie od dziś, Sony pozostawiło sobie tylną furtkę służącą do aktualizacji oprogramowania... zarówno browsera (OSDSYS) jak i DVD Playera. Taka możliwość była niezbędna już w przypadku pierwszych konsol (V0), ponieważ nie posiadały one odtwarzacza DVD w swoim biosie (a więc musiały uruchamiać go z karty pamięci). Update samego browsera z karty nie był nigdy wykorzystywany (powstały tylko update'y Browsera mieszczące się na HDD, ale to już całkiem inna bajka).
Free Mc Boot (znany także pod nazwą Free Vast) wykorzystuje właśnie ten proces, aby uruchomić prościutki loader (nie tylko, ale o tym później), który z kolei uruchomi dowolny program z jednej z wielu wybranych lokacji (w pełni konfigurowalne poprzez plik konfiguracyjny - tylko z domyślnym loaderem: brak EMBED.ELF przy instalacji).
Gdy PS2 Browser uruchamia się, sprawdza on najpierw na karcie pamięci obecność katalogu B?EXEC-SYSTEM ("?" to kod regionalny), ustawienie dwóch specjalnych atrybutów, a następnie obecność w nim jednego z kilku plików (w zależności od wersji OSDSYS, niektóre sprawdzają nawet cztery różne nazwy). Jeśli plik ten istnieje, stara się go odszyfrować (jeśli plik nie posiada prawidłowych pól kc/kb, nie uda się go poprawnie zdekodować... co oczywiście wiąże się też z ograniczeniem, że plik sporządzony dla jednego regionu Magic Gate nie zadziała z innym - zwróć uwagę, że region MG nie jest równoznaczny regionowi konsoli jako takiej E/A/I, ale wyróżnia je znacznie bardziej szczegółowo). Jeśli całość przebiegnie pomyślnie, nasz plik zostaje uruchomiony (zastępując skutecznie OSDSYS). W przypadku DVD Playera podobny proces jest wykonywany w momencie przejścia browsera do odczytu płyt DVD-Video (co można wykorzystać do uruchamiania płyt przy pomocy ESR bezpośrednio z browsera).
Po uruchomieniu instalatora i wybraniu odpowiedniej opcji instalacji (dla uproszczenia wybierzmy wersję pojedynczego pliku) zaczyna się właściwy proces. Ładowany jest ADDDRV, a następnie EROMDRV, który daje nam dostęp do urządzenia "erom". Następnie wczytywany jest plik DVDELF (z urządzenia erom lub też z pliku DVDELF.BIN znajdującego się w katalogu z instalatorem). Jest to najważniejszy plik w całym procesie. Można równie dobrze użyć każdego innego pliku zakodowanego dla danego regionu (jest nam potrzebny, ponieważ nie potrafimy jeszcze wygenerować poprawnej bittable - przynajmniej ja nic o tym nie wiem), ale ten jest najłatwiej dostępny. W tym momencie następuje proces generacji poprawnych kb/kc, które różnić będą się dla każdej z kart (generacja poprzez próbę deszyfrowania i ponownego zaszyfrowania pliku DVDELF). Teraz następuje właściwy proces osadzania podstawowego launchera (tego, który skopiuje kod z rozpakowanego już pliku i uruchomi go) oraz launchera głównego (tego, który zajmie się już całą resztą... włącznie z uruchomieniem plików wszelakich), ewentualnego dodatkowego pliku do osadzenia. Cała rzecz polega na takim osadzeniu naszego kodu, aby nie trzeba było go ponownie kompresować ani szyfrować... czyli umieścić należy go w największej z nieszyfrowanych sekcji pliku (a następnie poddać standardowej sztuczce z XOR-owaniem). Teraz nieszyfrowane sekcje w oryginalnym pliku są zastępowane przez nieszyfrowane sekcje z pliku zmienionego (nie trzeba ich ponownie szyfrować... ponieważ są nieszyfrowane... i tu leży cały hack). Następnie plik jest podpisywany wygenerowanymi wcześniej kluczami i wykonywane jest standardowe sprawdzenie jego poprawności. Teraz wystarczy już tylko skopiować plik do wcześniej wspomnianego katalogu i nadać mu odpowiednie atrybuty. Zabawa skończona, nigdy więcej nie potrzebujemy już modchipa do uruchomienia aplikacji na niemodyfikowanej konsoli!
O ile metoda może wydawać się prosta, to dojście do niej zajęło bardzo wiele czasu i wymagało potężnej pracy, nie rzadko na bardzo niskim poziomie (bezpośrednia praca z SIO2 i Mechaconem, aby uniknąć potrzeby używania licencjonowanych przez Sony modułów). Do końcowego sukcesu przyczyniło się wiele osób i każda z nich wniosła swój unikalny wkład, ale na największe uznanie zasługują Jimmikaelkael (lider, pomysłodawca, główny koder) oraz Neme (w sam czas pojawił się z kodem umożliwiającym sprawienie, aby FMCB stał się w pełni legalny - trzeba przyznać... świetny pomysł). W samego FMCB osobiście wkład miałem niewielki (tylko cdvdinit i multilang fix).
Zainteresowanych dogłębnym poznaniem procesów stojących za tym cudnym dziełem odsyłam do kodu źródłowego instalatora Free MC Boot (w momencie pisania tego tekstu najnowszą wersją była 1.5).
Osobnym zagadnieniem jest aplikacja ESR, mojego autorstwa, pozwalająca na uruchamianie wypalanych kopii legalnie posiadanych gier i aplikacji na niemodyfikowanej konsoli oraz umożliwienie dostępu do wypalanych płyt dvd aplikacjom homebrew. Jest to już jednak opowieść na inny letni wieczór przy ognisku."
Ten artykuł komentowano 1133 razy. Zobacz komentarze.