Защита Xbox 360
В этой статье речь пойдет о последней надежде Microsoft — защите AP 2.5 . Интересные факты и полезности, которые не плохо знать всем нам — пользователям прошитых консолей! Какие сюрпризы ожидают нас в будущем и как работает данная система!? Именно об этом мы попробуем рассказать…
AntiPiracy 2.5 (AP 2.5) – система защиты от копирования игровых дисков XBOX 360. Она основана на идентификации оригинальной структуры лицензионного диска путем сравнения задержек при переходе с одного сектора на другой (в теории это выглядит как измерение угла между секторами – более подробно рассмотрено ниже) с эталонными значениями, снятыми с конкретной партии дисков на заводе.
Дело в том, что при производстве оригинального Xbox 360 диска на промышленном оборудовании, задаётся уникальная структура физического распределения данных на его поверхности. На домашнем же «резаке», данная структура носителя не может быть воспроизведена в точности, так как при записи, все сектора записываются последовательно, один за другим.
В первую очередь, данная система защиты направлена на распознавание модифицированной прошивки привода в Xbox 360. Так как только в случае идентификации игрового диска, но отказа выдачи AP 2.5-данных можно с уверенностью 99,9% констатировать, что используется обычная нарезанная болванка, а в приводе модифицированная прошивка.
При возникновении данного события (проверки не проходят, привод отдаёт пустые значения), Xbox 360 в файл secdata.bin заносит метку X-Value – Failed AP25 Challenge. То есть Xbox становится кандидатом на «бан» в XBL. Но это не означает моментальный бан при входе в Live! С ноября 2009 года приставки, не попавшие «под раздачу», до сих пор работают онлайн!
В ином случае, если прошивка привода — заводская и будет вставлен самописный диск, проверка попросту не запустится.
Осень 2010
Официально Dashboard 2.0.12611 (неофициально с бета-версии 2.0.12416), вышедший 1 ноября, впервые иницировал проверку AntiPiracy 2.5 (AP2.5). Тогда при запуске надпись «Диск не читается» вылезла на трёх играх: Assassin’ s Creed: Brotherhood, Need for Speed: Hot Pursuit, Fable III.
Новый Dashboard иницировал в составе защиты AP 2.5 целых 13 (!) дополнительных проверок диска перед запуском игры. Если проверки не проходят (привод отдаёт пустые значения) — соответственно гарантированно используется модифицированная прошивка и консоль помечается на Failed AP 2.5 Challenge. Проверки можно представить в виде: «вопрос-ответ», «вопрос-ответ» итд. Все вопросы стали известны при изучении структуры защиты. А вот ответы могут быть получены только с оригинального диска самой игры. Для усложения анализа защиты, эти «вопрос-ответы» еще и криптованы с использованием шифрования AES. Естественно, раз проверок никогда не проводилось, то и c лицензионных дисков «снимались» только служебные сектора и игровые данные.
В конце ноября C4eva придумал как обойти защиту AP 2.5 — появилась модифицировання прошивка привода LT+. Суть сводилась к тому, что привод будет ожидать «вопросов» AP 2.5. И если таковые появляются, то «ответы» «прошитый привод» берёт из определённых, заранее известных, секторов на диске. Если «ответов» привод не найдёт, то он иницирует зависание привода, чтобы обойти запись о пометке Failed AP 2.5 Challenge. Вместо игры, вылезет черный экран, если консоль не выключить, через 3 минуты она всё же оставит заметку Failed AP 2.5 Challenge в secdata!
На данный момент, процессом снятия AP 2.5-ответов владеют C4eva и K3rn3l. Они «снимают» эти ответы и записывают в те самые места, из которых их спокойно возьмёт модифицированный LT+ привод. Те самые ПАТЧИ для образов дисков AP 2.5 и есть набор тех самых ответов, которыми будет «кормить» дашборд, чтобы он думал, что вставлен лицензионный диск.
Отмечу, что AP 2.5-проверки снимаются практически «монопольно» узкой группой людей. С этим и возникает большинство проблем, а именно с выходом патчей для локализованных версий и различных регионов. То есть, сначала выходит патч на самый распространённый, к примеру, английский Region Free образ. В нашем случае – дата выхода патча для русской PAL-версии, например, Modern Warfare 2 или Black Ops откладывается на неопределённый период времени. Суть в том, что для снятия AP 2.5-ответов K3rn3l’у и C4ev’e требуется оригинальный лицензионный диск. То есть, весь парадокс в том, что для того чтобы поиграть на последней версии Dashboard в AP 2.5-игру необходимо купить лицензию, послать диск авторам и ждать выхода патча, после применения которого, можно будет поиграть на самописной болванке.
K3rn3l и C4eva не хотят раскрывать метод снятия AP 2.5-ответов, ссылаясь на то, что, если способ станет массово известным, Microsoft попытается закрыть найденную ими уязвимость. Соответственно, в будущем можно вообще остаться без AP25-патчей.
Попытка применения повреждённых/неверных патчей, которые не соответствуют данному Media ID может привести к пометке X-Value – Failed AP25 Challenge. Вывод неверных AP 2.5-ответов равноценен отсутствию AP25-ответов. Игра всё равно не запустится.
Поддержка AP 2.5 приводами:
Поддерживают проверки: LiteOn, BenQ, Hitachi 78/79
Не поддерживают проверки: Samsung, Hitachi до 59 включительно.
В каждый Xbox 360 (начиная с 2007 года), на заводе прописывается информация, с каким приводом он был выпущен. В секции OSIG прописывается модель привода и его версия прошивки. Спуфинг – это когда ставится «неродной» привод, который выдаёт себя за «родной».
Для успешного прохождения AP 2.5-проверок на «неродных» (заспуфленных, подменённых) приводах действуют несколько правил.
Правило 1. Нельзя использовать привод без поддержки AP 2.5 вместо «родного» привода, который поддерживает AP 2.5 (приставка будет посылать запросы, привод не будет в состоянии ответить на них).
Правило 2. Вместо Hitachi с поддержкой AP 2.5, нельзя поставить LiteOn (из — за особенностей прошивки LT+)
Поддержка выдачи AP 2.5-ответов была внедрена только с версии LT+. Все ранее вышедшие версии прошивки привода не поддерживают выдачу AP 2.5-ответов, соответственно попытка запуска AP25-игр на ранних версиях обречена на неудачу и возможный бан в последствии.
Таблица DAE
Таблица DVDAuthEx (DAE)появилась с 12416 бета-версий Kinect-даша. Размещается она в NAND консоли в файле DAE.bin. В ней представлен список Media-ID всех версий AP 2.5-игр. Для каждого регионального экземпляра содержится необходимая информация для прохождения AP 2.5-проверок. По данной таблице и идёт сверка результатов выдачи ответов привода на проверку AP 2.5. Каждый региональный экземпляр игры со своим Media ID уникален и содержит уникальные AP 2.5-ответы. На каждую конкретную игру приходится примерно с десяток различных региональных Media ID экземпляров.
Пример куска кода DAE.bin, автор Defosho
Example challenge – пример проверки, PSN1 и PSN2 (PSN – Physical Sector Number) номера секторов между которыми производится замер, Target Angle – полученное значение угла
На момент написания – последняя версия Dashboard 12625 содержит 101 Media ID, 40 из которых вообще неизвестны и возможно будут присвоены будущим играм. На данный момент каждый Media ID содержит 13 проверок. Но общее количество возможных проверок равно 50. Поэтому в любой момент «Microsoft» с новой версией Dashboard может увеличить как количество поддерживаемых Media ID, так и количество проверок. Таким образом, даже «патченные» для LT+ работающие сейчас образы могут быть уже неактуальны в недалеком будущем. Всё будет зависеть от агрессивности внедрения проверок AP 2.5 Майкрософтом.
Общий принцип работы AP 2.5
Вы вставляете диск в привод. Операционная система XBOX 360 проводит начальную идентификацию диска. Производится предпроверка диска, а именно проверка файлов диска на соответствие исходным. В случае непрохождения проверки, приставка выдает надпись «Начать игру», но логотип игры не показывается. После прохождения предпроверки, в поле «открыть-закрыть лоток» появляется название/логотип игры. При запуске активируется проверка подлинности игрового диска. В этот момент, если данный Media ID присутствует в таблице DAE, – проводится ряд замеров углов между конкретными секторами. Полученные с привода значения сравниваются с эталонными в таблице и при совпадении значений – игра запускается. На практике всё это занимает несколько секунд и проводится незаметно для пользователя.
Вообще принципом измерения углов для однозначного определения подлинности диска использовалась еще со времен дискет. Схожую по принципам защиту даже запатентовал российский разработчик под названием StarForce.
Спиральная дорожка лазерных дисков очень похожа на грампластинку, только начинается не снаружи, а изнутри, то есть наматывается от центра к краю. Лазерная головка, удерживаемая в магнитном поле (примерно так же как удерживается звуковая катушка в акустических системах) движется на салазках поперек спиральной дорожки. Сама дорожка состоит из секторов с данными и каналов подкода. Номера секторов находятся как в заголовках самих секторов, так и в каналах подкода, «размазанных» вдоль спиральной дорожки. Для грубой наводки на требуемый сектор используются салазки и каналы подкода, а для точной — отклонение в магнитном поле и секторные заголовки.
Просто взять и измерять структуру спиральной дорожки нельзя, но можно сделать вот что. Допустим, головка считывает сектор X, а следом за ним — сектор Y. Если угол XOY, образованный центром (O) диска и секторами X, Y составляет ~15 град, а сами сектора расположены в соседних витках спиральной дорожки, то приводу будет достаточно всего лишь немного отклонить головку и через мгновение сектор Y сам упадет в его руки, как перезревшее яблоко — диск ведь вращается!. Если же угол составляет менее 15 град, тогда за время перемещения головки сектор Y уже «уплывет» и приводу придется ждать целый оборот лазерного диска!
Когда угол между секторами X и Y составляет ~15 град. при переходе на соседний виток сектор Y сразу же «подлетает» к оптической головке (рисунок слева), при меньшем значении угла сектор Y успевает уплыть и головка вынуждена ждать целый виток.
Таким образом, замеряя время чтения различных пар секторов, мы можем приблизительно определить их взаимное расположение на спиральной дорожке. У каждой партии диска оно будет своим (ведь плотность секторов на 1мм и крутизна спирали неодинакова и варьируется от партии к партии). Чтобы побороть упреждающее считывание (которым «страдают» многие приводы), защита должна читать сектора в порядке убывания их номеров. Также она должна измерять скорость вращения привода, чтобы, во-первых, определить постоянство временных замеров (пляшут они как пьяные человечки или нет), а во-вторых скорректировать формулу для вычисления угла, ведь как легко показать — чем быстрее вращается диск, тем скорее «уплывает» сектор.
Есть мнение, что в состав AP 2.5 входит также более полная идентификация OSIG (Original drive Signature). Видимо, это связано с тем, что разные модели приводов выдают немного отличающиеся данные по коммандам. По этим данным, видимо, можно отследить : подменен привод в консоли или нет. Но на практике такие проверки могут быть проведены в XBL. В оффлайне определяется лишь только наличие AP 2.5-поддержки.
Теории взлома
Еще раз вернёмся к тому, что для снятия AP 2.5-ответов K3rn3l’у и C4ev’e требуется оригинальный лицензионный диск. То есть, напрямую из Nand снять AP 2.5-ответы пока не удаётся. Данные зашифрованы по-максимому. Какой способ используется ими – до конца не ясно. Но требование для снятия оригинального диска говорит о каком-либо возможном перехвате. С другой стороны, авторы не хотят публиковать способ из-за того, что якобы разглашение повлечёт за собой закрытие «дырок» используемых для перехвата.
1.Напрямую из Dashboard используя какие-либо отладочные приложения, подписанные Microsoft для тестирования, анализируя логи и пр.
2.Теоретически возможно используется некое устройство, что-то типа SATA-сниффера, подключаемое последовательно между приводом и материнской платой XBOX 360.
3. Есть вероятность перехвата данных из RAM-привода, но опять же всё это догадки.
В завершении хочется отметить следующее. Если Microsoft начнёт тотально внедрять AP 2.5-проверки на все диски – K3rn3l и С4eva не смогут актуально снимать AP 2.5-проверки с сотней дисков. Соответственно, или мы получим способ снятия или последним оплотом на независимость останется PHAT-фрибут. Есть, конечно, космическая теория, что когда-нибудь взломают цифровую подпись Microsoft и тогда мы получим полный крах защиты XBOX 360.
Автор материала — Александр Комбатов (Новосибирск, MCITP)
В составлении материала использованы материалы,высказывания, FAQ’и реплики в чате:
Commodore4eva, K3rnel, Dofosho, из русского community хочется отблагодарить HOMiE7 и RichY, а также Крис Касперски ака мыщъх.
Шикарнейшая статья! Теперь всё понятно. Спасибо