Как взламывали консоли: PlayStation 2, Xbox и GameCube

Некоторое время назад мы рассказывали о том, как взломали первую Sony PlayStation и последнюю консоль Sega — Dreamcast. Но на этом история противостояния пиратов и игровых корпораций не закончилась. Так что сегодня наш рассказ будет о PS2, Nintendo GameCube и первой консоли Microsoft — оригинальном Xbox и том, что их наследие живет уже больше 20 лет благодаря сообществу энтузиастов.

Sony PlayStation 2 (2000-2001)

После успеха PlayStation в хороших продажах PlayStation 2 почти никто не сомневался. Но в итоге PS2 превзошла все ожидания и до сих пор остается самой популярной консолью в истории, обходя даже Nintendo DS. Как ни странно, одним из факторов успеха PS2 можно назвать пиратство, которое позволило покупать дешёвые игры и в самых бедных уголках мира. И это даже несмотря на то, что Sony подошла к защите своей второй консоли гораздо более основательно.

Диски PS2 не сильно отличались от дисков PS1. Черный пластик заменили на насыщенный синий, а волнистая линия для проверки региона, которую не могли наносить бытовые пишущие CD и DVD-приводы, осталась одним из главным методом борьбы с пиратством. Логотип PS2 на запуске системы теперь находился в первых 16 секторах каждого диска, но был зашифрован. Ключ шифрования находился в волнистой линии, но тоже был зашифрован в данных самой игры. Как и в случае с черными дисками PS1, синий цвет дисков PS2 сам по себе никак не помогал защищать их от копирования, а просто был быстрым и надежным способом отличить настоящую копию от хорошей подделки. Но пиратов это все не остановило.

В 2001 году практически сразу после выхода консоли появились мод-чипы вроде PS2 NEO KEY, которые состояли из двух частей — чипа и диска. Чип вставлялся в USB, программа запускалась с диска. После запуска диск можно было заменить на бэкап игры. Первоначально такие моды работали только с играми на CD от PS1 по обратной совместимости, но вскоре они научились обходить и это ограничение.

Помня о практически полном отсутствии защиты у CD-привода PS1, Sony добавила гипервизор для DVD-привода PS2. Он работал достаточно просто: если диск передавал информацию, что его тип DVD-ROM (их печатают на заводах), то игра запускается; если что-то другое (DVD+R), то игра не запускается. Для обхода этого ограничения, чтобы гипервизор запускал игру с любого диска, придумали первые мод-чипы вроде Messiah.

Модифицирование PS2 было занятием не для новичков, потому что требовало распайки 20 проводов по всей плате. В итоге по всему миру появлялись мастерские по модифицированию консолей, а во многих странах (в том числе и в России) их продавали уже с установленными чипами. Более новые версии мод-чипов PS2 до сих пор используют 20-ти проводной метод распайки как и Messiah, отличаясь лишь по функционалу. Sony очень активно судилась с мастерскими по чипированию PS2, но они все равно появлялись в каждой подворотне.

Более простым методом был Swap Magic, который позволял менять диск в консоли с оригинального на копию без ведома системы зашиты. Все версии PS2 шли с сенсорами, которые проверяли открыта ли крышка DVD-привода. Комплекты Swap Magic шли с заглушками, которые закрывали эти сенсоры, но настоящий фокус был в двух специальных дисках в комплекте. Компания Datel смогла повторить методы защиты, которые использовала Sony, и поэтому ее диски читались консолью как настоящие. После их инициализации консоль находила на диске специально нанесенные битые секторы, несколько раз пыталась их прочитать, а затем останавливала привод дисковода — в этот момент диск можно было заменить (что было особенно просто в Slim-ревизии консоли с открывающейся крышкой как у PS1) на игровой.

Наконец, самым простым и гибким методом взлома PS2 стал дашборд Free McBoot. Он не требует ни владения паяльником, ни специальных дисков — достаточно просто вставить в консоль специальную карту памяти. Тут Sony перехитрила саму себя. Она планировала обновлять PS2 при помощи специального диска, который записывал прошивку на карту памяти, которая запускала обновленную ОС после загрузки. Метод работал плохо, потому что любое обновление можно было легко откатить просто вынув карту памяти. Но в PS2 не было своего жесткого диска или чипов памяти, поэтому держать обновления на картах для сохранений было единственным вариантом.

Сам по себе Free McBoot не может запускать бэкапы игр, а только ELF-файлы сторонних приложений. А уже среди этих приложений есть загрузчики вроде ESR. ESR обходит проверки запуская диск как DVD-Video, а потом переключаясь на игру. Для этого диск должен быть записан с двумя разными оглавлениями — как DVD-Video и как игра. Другой загрузчик — OPL — позволяет запускать образы игр по USB или даже по сети.

Microsoft Xbox (2001-2002)

Вокруг оригинального Xbox крутится не меньше, если не больше интересных историй, чем вокруг оригинальной PS1 — от слухов о том, что Xbox должен был быть Sega Dreamcast 2, до баек Тодда Говарда о том, как движок TES: Morrowind иногда специально перезагружал консоль, чтобы очистить память. Но в сердцах энтузиастов Homebrew-сообщества, которые взламывают игровые консоли, Xbox занимает особое место. Взломанный Xbox был полноценным компьютером в уникальном на тот момент форм-факторе. На Xbox можно было не только играть в игры, но и сделать мультимедиа-центр в гостинной у большого телевизора, поставить на него Linux и играть в ретро-игры на эмуляторе или просто играть в копии игр, не изнашивая ценные оригинальные диски. А еще Xbox был очень быстро взломан.

Оригинальный Xbox мог запускать только подписанный код. Если сделать просто копию игры, она не запустится. Если сделать копию операционной системы, она тоже не запустится. Искать ключ шифрования — дело неблагородное (и неблагодарное), поэтому проще было заставить систему запускать неподписанный код.

Первым пал жесткий диск. Его просто достали из консоли и подключили к компьютеру. Microsoft использовала в Xbox практически стандартное ПК-железо, поэтому такой подход будет повторяющейся темой. Файловая система на диске была модифицированной версией FAT32, но это не остановило хакеров. На диске не оказалось ядра операционной системы, зато были файлы дашборда. Microsoft схитрила и спрятала загрузочный чип в контроллере южного моста, где в очевидном ROM-чипе хранилась нужная информация.

За этот чип и взялся хакер Эндрю «bunnie» Хуанг, слив его содержимое на ПК. Данные на чипе были зашифрованы, но первые 512 бит были… не зашифрованным ключом шифрования. Впрочем, это была старая версия ключа, которая не подходила под финальную версию консоли, и никак ей не использовалась. Однако это навело bunnie на мысль, что где-то должен быть настоящий спрятанный ROM. bunnie собрал между MCPX (южным мостом) и чипом памяти собственный аппаратный экстрактор, который перехватывал весь процесс загрузки Xbox, вытащив и ключ шифрования, и BIOS, и модифицированное ядро Windows 2000, на котором работала консоль.

Microsoft потребовала bunnie удалить ROM с его сайта, но было уже поздно. Homebrew-сообщество поняло как извлекать ядро системы, и тут же появились чипы, которые работали параллельно с ОС Xbox и вставляли свои патчи во время загрузки. Эти чипы были достаточно сложно установить, но очень скоро выяснилось, что если вообще убрать с материнской платы загрузочный ROM-чип, то Xbox попытается загрузиться с отладочного порта LPC. Это побочный эффект производства Xbox: ядро ОС загружали в консоль через порт LPC. Производители мод-чипов повторили этот процесс, припаивая к LPC чипы с кастомной прошивкой. До сих пор это самый простой и надежный способ аппаратного взлома оригинального Xbox.

В 2002 году Microsoft обновила ROM и ключи шифрования в попытке закрыть дыру, но сам чип все еще находился в южном мосте. Существенно более надежным, но и существенно более дорогим было бы поместить ROM-чип на процессор, но для этого требовалось обновить его дизайн, на что Microsoft не решилась.

Тем временем другое homebrew-сообщество, которое увлекалось запуском Linux на любом железе, нашло еще один обход: в Pentium 3 есть старая уязвимость, которая позволяла загрузиться «мимо ROM», если просто замкнуть один из штыревых контактов на процессоре. Во время разработки Xbox Microsoft использовала процессоры AMD, у которых нет такой уязвимости, заменив их на Intel Pentium 3 в самый последний момент. Оказалось, что Microsoft обфусцирует (путает) процесс загрузки системы, используя «тайный ROM». После загрузки системы этот тайный ROM остается в памяти, и хакеры просто скачали его данные программой-экстрактором. После этого Microsoft поняла, что бой за оригинальный Xbox уже проигран, и сосредоточила свои усилия и миллионы долларов инвестиций на защиту находящегося в разработке Xbox 360.

Но и в софте Microsoft нашлись дыры. Как упоминалось выше, в теории все исполняемые консолью файлы должны быть подписаны. Как оказалось, кроме файлов сохранений. Их можно перенести с консоли на обычную USB-флешку и спокойно модифицировать и исполнять на консоли, вызывая переполнение буфера. Например, в играх, где можно ввести имя персонажа из 10 букв, изменить имя на 20 символов. В операционной системе Xbox нет гипервизора, поэтому и дашборд, и игры работают с полным доступом к ядру системы. Использование переполнения буфера заставляет Xbox исполнять любой код — копирование BIOS, файловый менеджер, что угодно. Но этот хак пришлось бы загружать после каждого перезапуска консоли, если бы хакеры не обнаружили, что файлы шрифтов дашборда идут без цифровой подписи. Модифицировав их хакеры заставляют Xbox крашиться на старте и запускаться уже с модифицированной ОС. Microsoft не могла исправить этот эксплойт, потому что данные файлы шли с каждой игрой, и это бы сделало старые игры нерабочими.

Другой метод программного взлома: горячая замена жесткого диска. Надо включить консоль, вынуть из нее жесткий диск, запустить его на ПК и разблокировать специальным софтом или мастер паролем в случае диска WD. После чего на него можно поставить эксплойт.

Дыр в безопасности оригинального Xbox было очень много, и они были тщательно задокументированы. Эндрю «bunnie» Хуанг написал книгу «Hacking the Xbox: An Introduction to Reverse Engineering», в которой он подробно описывает, как обходил аппаратную безопасность консоли. Майкл Стейл и команда Xbox Linux с 2002 года выступала с множеством докладов с подробнейшими разборами ошибок Microsoft, а один из крупнейших специалистов по информационной безопасности и криптографии Брюс Шнайер в 2005 году обобщил безопасность Xbox емкой фразой «множество детсадовских ошибок». А Microsoft извлекла уроки и больше уже их не повторит… верно?

Nintendo GameCube (2001-2003)

GameCube была первой популярной консолью с процессором на архитектуре PowerPC, которую потом подхватят Xbox 360 и PS3, а Nintendo продолжит использовать аж до выхода Switch в 2017 году. Видеочип Flipper для консоли разработала компания ArtX Inc., которую еще до выхода GameCube приобрела ATI, которую в 2006 году в свою очередь приобрела AMD. Flipper не имел ничего общего с технологиями ATI и выдавал очень впечатляющую производительность для своего времени. Nintendo обещала, что чип сможет отрисовывать до 12 млн полигонов, но лучшие игры типа Star Wars: Rogue Squadron использовали 12 млн полигонов в среднем кадре, а зачастую и намного больше. Про технологии этой игры мы уже рассказывали в одном из наших видео.

Игры шли на кастомных дисках объемом 1,2 Гб, сделанных на основе MiniDVD. Диски записывались особым запатентованным способом — бытовые DVD-приводы их не видели, а GameCube не запускал игры с болванок, не записанных этим хитрым методом. Однако GameCube не поддерживал подписанный код и не имел гипервизора, поэтому мог исполнить любую программу. Хакерам надо было всего лишь придумать способ ввода кода в консоль.

Троянским конем послужила онлайновая RPG Phantasy Star Online Episode I & II. У нее была функция скачивания патчей, которой и воспользовались хакеры, заменяя DNS-адреса серверов игры на локальные, что позволило заливать на консоль собственные «патчи». Этот эксплойт назывался PSOload, он работал отлично, но был одноразовый — каждый раз, чтобы запустить сторонний софт, надо было сначала зайти в PSO и загрузить код с сервера на компьютере. Программный взлом GameCube позволил считывать с зашифрованных дисков данные игр и передавать их по сети на сервер/компьютер. Homebrew-сообщество написало множество программ для GC вроде Swiss, которые позволяли в том числе запускать пиратские копии игр по сети.

Такой взлом был рабочим, но далеко не самым удобным. Решение пришло от британской компании Datel, которая придумала диски Action Replay для Xbox и PS1, а GameShark для PS2 был ребрендингом их продукта для американского рынка. Естественно, Datel не могла пройти мимо GameCube и его хитрых дисков. Так называемые GameCube Game Disc были разработаны Matsushita на основе формата MiniDVD. Данные были полностью зашифрованы, а по внутреннему периметру диска (BCA, burst cutting area — область высеченного штрихкода) наносился код, который нельзя повторить без специального твердотельного YAG-лазера. Более того, были шесть специальных меток, которые изменяли данные уже в рабочей зоне. На первый взгляд под такие под такие диски нужен завод, а не DVD-плеер из магазина.

Однако, как и в случае особых дисков PS2, диск Action Replay работал на GameCube. Ошибкой Nintendo и Matsushita было то, что BCA пишет поверх первых блоков данных DVD. Datel просто взяла с консоли расшифрованные данные и скопировала их в первые блоки. В итоге консоль считывает Action Replay как настоящий диск игры. Однако для пиратства этот метод не стал популярным. Datel не спешила раскрывать свои хитрости, а пока хакеры догадались, уже появились эффективные аппаратные модификации.

Диски Action Replay были нужны для использования кодов, и работали примерно как трейнеры на ПК — изменяли значения в оперативной памяти консоли. Но так можно было изменить любой код в памяти, и хакеры быстро придумали строки, которые можно было вбить в меню Action Replay и запускать программы с SD-карты, которая вставлялась через переходник в разъем для карты памяти — этот метод назывался SDLoad. Позже Datel выпустила SD Media Launcher, для которого даже не нужен был диск с кодами — достаточно просто вставить в консоль переходник с картой памяти. Американскую версию устройства сняли с производства в декабре 2021 года, а европейскую все еще можно заказать на сайте компании.

Как и на оригинальном Xbox, на GameCube до сих пор находят и используют эксплойты с переполнением буфера в 12 с лишнем играх, но по сравнению с аппаратными методами, они куда менее удобные. Зато там тоже засветились первые части Tom Clancy’s Splinter Cell.

Параллельно со взломом защиты дисков хакеры работали над аппаратными решениями. Самым очевидным была замена чипа BIOS — GameCube IPL (Initial Program Loader). Это позволяло не только отключить проверку безопасности дисков, но и автоматически загружаться в сторонние загрузчики по сети или с карты памяти. В декабре 2004 года появился первый модчип Viper GC, который было очень просто установить — припаяв всего 4 провода. Viper загружал собственный BIOS Cobra, который позволял использовать для игр не только MiniDVD, но и полноразмерные DVD-болванки. Следом за Viper последовала улучшенная версия Viper GC Extreme и аналоги Qoob SX / Qoob Pro.

Самая современная версия взлома GameCube — чипы XenoGC, которые припаиваются к дебаг-порту DVD-привода напрямую или проводами и полностью разблокируют его. Если предыдущие методы используют достаточно дорогие FPGA-платы, то XenoGC и его клоны очень просты, дешевы и выпускаются по сей день.

Наконец, одну из популярных модификаций Wii — WODE (Wii Optical Drive Emulator), можно использовать и на GameCube. Она полностью заменяет DVD-привод и позволяет играть в игры с внешних жестких дисков и SSD, не требует пайки и поддерживает современные файловые системы вроде NTFS и HFS+ (по крайней мере, более современные, чем FAT16, которая используется в GameCube).

В конце июня 2022 года инженер Мацей [webhdx] Кобус выпустил новый «модчип» PicoBoot, который использует дешевый одноплатный компьютер Raspberry Pi Pico и адаптер для картридера SD. Модчип заменяет BIOS GameCube и загружается напрямую в homebrew-программы, обычно в ланчеры вроде вышеупомянутого Swiss. Этот джейлбрейк немедленно набрал популярность из-за дешевизны и простоты: на Западе Raspberry Pi Pico стоит в среднем около 8 долларов, подключается к консоли всего 5 проводами с очень легкой распайкой, софт от [webhdx] скачивается одной кнопкой с GitHub, а в интернете уже полно подробнейших пошаговых инструкций. PicoBoot позволяет добавлять к GC функционал, который был ранее недоступен, вроде Wi-Fi, а также упрощает запуск homebrew-софта вроде Swiss, потому что не требует специального загрузочного диска, а работает сразу с загрузки системы. Так что 21 год спустя после выхода GameCube все еще живее всех живых.

На заре тысячелетия остались только три компании-консоледержателя — Nintendo, Sony и Microsoft. Все три подошли к защите от пиратства спустив рукава. PS2 все еще можно было взломать кусочками пластика и карандашом, у GameCube порты работали как обычный USB, в который можно воткнуть картридер, а Microsoft очень быстро поняла, что война с хакерами за Xbox проиграна и пора сосредоточиться на следующем поколении. Исправили ли компании ошибки — узнаем в следующей статье!

Источник

Понравилась статья? Поделиться с друзьями: