В 2005 году консоль Xbox 360 была выпущена в виде двух моделей: Core и Pro. Core — это дешёвая модель, позволявшая запускать игры с оптического диска, а Pro содержала жёсткий диск на 20 ГБ, чего в то время было более чем достаточно для хранения скачиваемого контента и другой дополнительной информации. Жёсткий диск всегда был опциональным аксессуаром, но быстро стал необходимостью для геймеров, желавших сохранять свои профили и скачивать контент с Xbox Live. Недостаток заключался в том, что жёсткие диски под брендом Xbox 360 были дорогими. На момент выпуска консоли диск на 20 ГБ стоил $99! Судя по старому руководству по ценам AnandTech за ноябрь 2005 года, за $57 можно было купить для PC жёсткий диск на 80 ГБ. Накопитель для Xbox 360 продавался с большой наценкой.
Моддеры начали исследовать возможность использования сторонних жёстких дисков, чтобы задёшево получить большой объём хранилища. К сожалению, вскоре они выяснили, что так просто эту проблему не решить.
Проверка подлинности режима ядра
Каждый подлинный жёсткий диск Xbox 360 хранил в секторе 16, называемом «сектором защиты», уникальный фрагмент данных, содержавший следующую информацию:
Данные сектора защиты обрабатываются функцией ядра под названием SataDiskAuthenticateDevice. В IDA она выглядит так:
Декомпилированная версия:
Функция относительно проста. Она начинается с вызова IoSynchronousFsdRequest. Эта функция перенесена с первой консоли Xbox, в Windows её не найти. По сути, она исполняет асинхронный запрос ввода-вывода, а затем ожидает его завершения. В данном случае это запрос на чтение сектора 16:
После выполнения этой функции Buffer будет содержать данные сектора защиты, а если чтение завершится неудачно, консоль отобразит экран ошибки E69. Такое происходит, только когда диск очень плохо подключён или на нём начинаются сбои.
Когда сектор защиты находится в памяти, выполняется проверка подлинности. Все жёсткие диски сообщают серийный номер, версию прошивки и номер модели в рамках команды IDE_COMMAND_IDENTIFY_DEVICE. Данные, которые сообщает прошивка диска, сравниваются с теми, которые хранятся в секторе защиты. Это выполняется при помощи специальной вспомогательной функции под названием SataDiskEqualAuthenticationStrings, которая, по сути, работает как memcmp (функция, проверяющая равенство байтов).
Если какая-то из этих трёх строк не совпадает, то проверка считается непройденной. Возможно, вы подумали, что должно быть очень легко и просто заменить сектор защиты так, чтобы он соответствовал данным в отчётах прошивки диска? К сожалению, весь сектор защиты подписан RSA при помощи приватного ключа, которым обладает только Microsoft. Это значит, что если изменить сектор защиты так, чтобы он соответствовал информации в прошивке диска, он не пройдёт криптографическую проверку. Вот проверка RSA-подписи:
Способы решения проблемы
Если вы не хотите покупать подлинный жёсткий диск Microsoft Xbox 360, то есть два способа решить это.
1. HDDHackr
Так как сектор защиты невозможно изменить так, чтобы он соответствовал информации прошивки диска, единственное возможное решение — изменить прошивку диска так, чтобы она соответствовала сектору защиты. Так был создан HDDHackr — приложение для MS-DOS, обновляющее прошивку накопителей Western Digital так, чтобы выдать их за другие. Например, если в секторе защиты написано, что диск создан Hitachi, HDDHackr изменяет прошивку диска так, чтобы она передавала информацию Hitachi.
Однако в хаке с HDDHackr есть свои ограничения:
- Он больше не поддерживается и работает только на старом оборудовании PC.
- Есть отчёты о том, что он плохо работает с новыми версиями накопителей Western Digital.
- Он не позволяет подключать накопители объёмом больше 500 ГБ. Сектор защиты ограничивает количество адресуемых секторов, а Microsoft официально выпускала жёсткие диски с максимальным объёмом 500 ГБ.
2. Моддинг консоли
Когда стал возможен моддинг консолей Xbox 360 при помощи хаков с использованием JTAG и RGH, одними из первых пропатчили проверку подлинности и ограничения размеров жёстких дисков. После устранения проверок стало возможным подключать, форматировать в дэшборде и использовать любой жёсткий диск объёмом до 2 ТБ. Однако такие хаки требуют аппаратных модификаций и в процессе моддинга приходится отказаться от доступа к Xbox Live.
Microsoft знает о вашем взломанном жёстком диске
Если вы применили HDDHackr, то для использования своего жёсткого диска вам нужно скачать подлинный сектор защиты из Интернета. Например, когда в 2014 году выпустили HDD на 500 ГБ, сообщество моддеров быстро опубликовало сектор защиты, чтобы пользователи могли создавать собственные жёсткие диски на 500 ГБ. Однако большинство людей не осознавало, что всё это время Microsoft собирала информацию о жёстких дисках пользователей. В частности, при подключении к Xbox Live в ответе на вызов безопасности Microsoft периодически передавалась следующая информация:
- Серийный номер
- Версия прошивки
- Номер модели
- Адресуемые пользователем секторы
Microsoft знает о каждой подключённой к Xbox Live консоли, к которой присоединён обработанный HDDHackr накопитель, поскольку видит десятки тысяч консолей, использующих один и тот же жёсткий диск. Секторы защиты уникальны и могут использоваться для идентификации жёсткого диска. Жёсткие диски Xbox 360 могут использоваться на разных консолях, поэтому если Microsoft увидит, что несколько консолей использует один жёсткий диск, это не будет тревожным сигналом, однако если об использовании одного жёсткого диска одновременно сообщают сотни или тысячи консолей, то достаточно очевидно, что в них установлен взломанный жёсткий диск.
Microsoft могла бы банить консоли за использование поддельного жёсткого диска, но не было никаких свидетельств того, что это когда-нибудь происходило.
Проверка логотипа
Если вы внимательно изучили структуру HDD_SECURITY_BLOB в начале статьи, то могли заметить LogoBitmapDigest. Сразу после сектора защиты, в секторе 17, находится PNG-изображение старого логотипа Microsoft:
Любопытный факт: судя по встроенным в изображение метаданным, оно было создано в Macromedia Fireworks MX 2004 19 июля 2005 года. Xbox 360 выпустили 22 ноября того же года. Изучив образцы и старых, и новых секторов защиты, я пришёл к выводу, что именно это конкретное изображение использовалось в каждом секторе защиты каждого жёсткого диска, попавшего в продажу.
Логотип используется при отображении накопителя в дэшборде Xbox 360:
Microsoft так заботилась о своём логотипе, что хэшировала его SHA1. Этот хэш подписан RSA в секторе защиты, поэтому изменить хэш или логотип невозможно.
Возможно, Microsoft думала над тем, чтобы позволить сторонним производителям продавать жёсткие диски для Xbox 360 под их брендами, как Seagate сегодня продаёт карты расширения Xbox Series X|S. Предположительно, логотип Microsoft должен был заменяться на логотип стороннего производителя. Но всё это лишь гипотеза: возможно, Microsoft просто хотела, чтобы пользователь чувствовал себя уверенно, зная, что купил подлинный аксессуар.
Развлечения с логотипом
На подвергнутой моддингу консоли можно заменить логотип на любое изображение, поскольку криптографические проверки больше не применяются. Ниже показаны примеры забавных изображений. Обратите внимание, хотя HDD имеет название Retail, менять логотип можно только на модифицированной консоли. Всё это скриншоты с настоящей консоли, а не фотошоп!
Печальные ошибки
Сектор защиты расположен в начале диска. Если подключить диск к Windows и открыть Disk Management («Управление дисками»), то он отобразится как «Not Initialized», поскольку Windows не распознаёт схему выделения разделов Xbox 360. Также появится всплывающее окно, предлагающее инициализировать диск в формате MBR или GPT, чтобы подготовить его к разбиению Windows.
К сожалению, последствия нажатия на OK оказываются катастрофическими. Сектор защиты перезаписывается таблицами разбиения диска Windows. Если вы не сделаете резервную копию, жёсткий диск больше никогда не будет работать на Xbox 360 без моддинга. Я постоянно получаю электронные письма об этом и мне мучительно говорить людям, что спасти жёсткий диск невозможно. Эта проблема стала настолько распространённой, что в 2015 году я добавил в FATXplorer автоматическое резервное копирование сектора защиты. При запуске программа сразу же создаёт резервные копии секторов защиты на всех найденных жёстких дисках. К сожалению, на момент публикации этого поста это не спасло ни единого жёсткого диска. Все сначала случайно инициализируют диски до первого запуска FATXplorer, из-за чего все меры спасения диска оказываются бесполезными. Если вы всё ещё играете на Xbox 360, задумайтесь о резервном копировании сектора защиты!
Комментарии (15)
dev_l
30.01.2023 10:39+3Ух, увидел картинку в заголовке — ностальгия накрыла)) Раньше такие использовали чтобы freeboot ставить. Считываешь прошивку из nand, прогоняешь через какую-то китайскую утилиту — и пишешь обратно. И ещё одну китайскую приблуду паяешь, чтобы проц в режиме разработчика запускала. После этого качай что угодно с торрентов и запускай. Крутые времена были))
Iv38
30.01.2023 11:32+6Про это на Хабре есть бомбический цикл из трёх статей хабраюзера 15432. Конкретно про глитч-хак в третьей части. Эта статья выглядит как отличное дополнение к тем трём.
Hlad
30.01.2023 13:07Насколько помню, в определённый момент Microsoft прикрутила к Xbox360 поддержку USB-накопителей до 2Тб, и проблема отсохла сама.
pavel_shabalin
31.01.2023 01:42Интересно конечно, но это весьма спорное утверждение:
Microsoft знает о каждой подключённой к Xbox Live консоли, к которой присоединён обработанный HDDHackr накопитель, поскольку видит десятки тысяч консолей, использующих один и тот же жёсткий диск.
CATangenius
31.01.2023 02:59Покупал китайский hdd 250 gb на подлинный xbox360 без прошивок. Стоил он раза в 2-3 дешевле оригинала от Майкрософт и работал без проблем (разве что пластик похуже и люфты крепления присутствовали). Даже и не знал, что есть проверка подлинности hdd, считал, что такие высокие цены только из-за проприетарного разъема на консоли.
Microsoft в то время изощрались в проприетарщине в отличии от Sony, а сейчас все перевернулось. Геймпады работали не по bt, флеш-карты и hdd были свои, аксессуары тоже (к ps3 можно было подключать Logitech рули, геймпады и джойстики).
Iv38
31.01.2023 03:30+1Геймпады у Коробок и сейчас работают не по блютусу. Впрочем, за некстген не скажу, не имею, но у Хуана свой протокол. Да, их можно подключить к компу по блютусу (не все, с какой-то там ревизии), но это урезанный режим с ограничениями. Кажется там не работает передача звука и ещё какие-то особенности есть. Помимо блютуса можно использовать приёмопередатчик с проприетарным протоколом. Полагаю, у новых консолей так же. Но вообще за блютусный режим геймпадов Майкрософту спасибо огромное. Брал геймпад в поездки с ноутбуком и играл, ничего дополнительно для этого не нужно, и это прекрасно.
SliderNsk
31.01.2023 07:41Для самой первой ревизии геймпадов Xbox One нужно было покупать передатчик для подключения к компу с Виндой, т.к. по блютус не работало. Все последующие ревизии уже работали по блютус без передатчика. Причем в полноценном режиме с передачей звука. Ничего там не урезано.
Iv38
31.01.2023 12:00Рекомендуется подключать по Bluetooth только один беспроводной геймпад. Подключение более чем одного геймпада с помощью Bluetooth возможно, но производительность может отличаться в зависимости от устройства.
Bluetooth не поддерживает дополнительное оборудование, такое как гарнитура, клавиатура или адаптер для стереогарнитуры Xbox.Когда геймпад подключен через Bluetooth, работа звуковых устройств не поддерживается.
Чтобы использовать гарнитуру, подключите геймпад напрямую к компьютеру с помощью USB или беспроводного адаптера Xbox для Windows. Также можно подключить звуковое устройство непосредственно к компьютеру.Функции вибрации (или «шума») не поддерживаются для беспроводного геймпада Xbox при подключении через Bluetooth.
Вибрация поддерживается, если геймпад подключен через беспроводной адаптер Xbox для Windows.
Источник
safari2012
31.01.2023 18:27Винда не в состоянии даже нормально звук от bluetooth - микрофона передавать. Сколько я не покупал их на Али, все подключались в режиме гарнитуры с поганым качеством звука от микрофона. Хочешь нормальный звук - режим A2DP, но уже без микрофона. По крайней мере, года три назад...
12rbah
В то время была услуга по "прошивке"(чтобы можно было играть в пиратские версии игр) консоли, около за +/- 1500, но там предупреждали, что если что-то пойдет не так консоль превратится в плеер за 16к.