Comments 65
Проблема с Winchester в том, что эта ревизия появилась уже на закате Xbox 360, и выпущено было их не так много. Новые уязвимости искать нецелесообразно — кто хочет взломанную, найдет б/у Corona или даже Jasper.
А про PS3 я не настолько много знаю, так что писать не планировал, но всё возможно.
Нет в планах написать подобное для прямого конкурента приставки — Playstation 3?
В момент актуальности этих событий, тут в комментариях даже сам kmeaw иногда отписывался, правда про взлом практически ничего не раскрывал. Вот уж кто мог бы многое поведать.
Хотя, про взлом Ps3 по-моему изначально больше информации было доступно, например есть вот такое: www.youtube.com/watch?v=DUGGJpn2_zY
Довольно сложно оказалось найти точную информацию по процедуре для такой старой консоли. Многие источники в интернете потеряли картинки, другие были на французском или ещё каких-то странных языках, да и платы менялись, так что пришлось компилировать информацию. У меня всё получилось, хотя времени на подбор параметров для стабильного запуска я потратил изрядно. Сейчас оглядываюсь, и удивляюсь удаче. Процедура очень непростая, многостадийная, ненадёжная ни разу. Приставка и сейчас жива, я иногда играю, когда бываю у родителей.
С тех пор я перестал быть мамкиным хакером, купил Xbox One S, и даже честно купил GTA V под неё. Так что, надеюсь, моя совесть очищена, зато интересный опыт остался.
Огромное спасибо вам за этот цикл статей, было очень увлекательно. Поражает упорство и уровень мастерства инженеров, которые всё это изобретали.
Я купил "корону" (да, в нынешнее время это уже странно звучит) в 2013-м, в "чёрную пятницу" на Амазоне, за смешные $199.99 (полный комплект, с кинектом). А потом уже возник вопрос, что с ней делать (очевидно — детям). Как раз исходя из того, что xbox 360 на тот момент уже достаточно давно был на рынке, а потому информации об особенностях, хаках и т.д. — полный интернет. Только вот обилие различных версий поиск этой самой информации немного усложнило.
О да, это был реальный челлендж — раскопать нужное, подпаяться к флешке, состыковать это с кардридером на системнике, слить прошивку, слить ключи, пропатчить, купить и прошить платку гличхака (правильную платку — потому что их тоже уже пучок был разных на али). А потом подбирать длину провода, чтобы добиться наиболее стабильного запуска.
Да, как пропатчить SMC я по итогу так и не разобрался, поэтому работает родной. Т.е. 5 попыток запуска, потом красное кольцо. Надо выключать и снова запускать. Но обычно хватает двух попыток.
Получился очень классный лайтовый опыт (лайтовый — потому что я не разбирался в тонкостях сам, использовал готовый опыт). Хоть и пришлось попаять, но ровно столько, чтобы по шагам дойти до финиша и при этом не потерять интерес. Это примерно, как собирать лего-техник со схемой в два-три тома, или икеевскую мебель.
Доступно, познавательно, на интересную тематику и, самое главное: с обилием технических деталей и без утаивания самых интересных моментов (на зарубежных форумах хакеры до сих пор бывает жмутся все секреты взлома PS1 раскрывать, которой 30 лет уже, а здесь X360!).
Сперва вот такой вопрос: после появления RGH было много сообщений, что этот взлом (в отличие от старого JTAG) очень быстро выводит из строя процессор: постоянные попытки его сглючить, мол, быстро приводят к деградации и отвалу/сгоранию. Действительно подобное имеет место, или это очередные страшилки из серии «приставка сажает кинескоп»?
Ну и вопрос, который невозможно не задать: а XOne ковырять не пробовали?
И почему, по вашему мнению, там всё совсем глухо? Абсолютно непробиваемая защита, хакеры нынче перевелись и/или их всех скупила/запугала Microsoft, или ломать просто неинтересно благодаря новой лояльной к homebrew политике компании, etc?
Рад стараться :) Это я ещё часть информации не указываю, иначе уж слишком много всего получится.
Процессор действительно мог выйти из строя, но не от самого RGH, а из-за колдовства с PLL — встречал случаи, когда PLL отключался навсегда и процессор так и оставался в улиточном режиме. Случаев, когда процессор со временем ломался сам по себе от RGH2 — не знаю.
В Xbox One я не лазил, но по тому что знаю, в нём учли все описанные ошибки и он действительно очень надёжно защищён. Даже если кто взломает, очередным обновлением с большой вероятностью всё закроют. Отсюда у людей нет особого желания этим заниматься — полгода делаешь эксплоит, а он будет актуален неделю максимум.
Насколько я понял из статьи, с PLL возможно было колдовать только на старых ревизиях, где он позволял замедляться аж в 128 раз. И именно здесь оказалось слабое место?
А починить этот PLL как-то представлялось возможным, пусть перепайкой чипа, или вообще с концами?
И, в итоге получается, что парадоксально, но RGH безопаснее для новых консолей, где в PLL залезть нельзя?
В Xbox One я не лазил, но по тому что знаю, в нём учли все описанные ошибки и он действительно очень надёжно защищён
Ясно, наверное так и есть. Ведь если проанализировать, то X360 по факту получился защищеннее той же PS3 (про нинтедовские консоли, которые, как кажется, не ломает только ленивый, и не говорю). Да, он был взломан раньше, и казалось, что его вот «постоянно ломают», а PS3 неприступная. Но, весь взлом X360 был направлен именно на привод. Уязвимостей, которые позволяли запускать произвольный код, там было кот наплакал (JTAG, ну и RGH потом), и все они требовали сложной процедуры с раскурочиванием консоли и тонкой пайки. Для сравнения, у PS3 оказалась огромная программная дыра, позволяющая взломать ранние ревизии штатной установкой прошивки с флешки (только поначалу были донглы, также используемые без пайки, просто вставлявшиеся в USB).
Да и для любых моделей PS3 недавно был выпущен полный взлом HEN — опять чисто программный, через веб-эксплойт. И Сони не может закрыть его уже несколькими обновлениями прошивок (хотя, на сегодняшний день это для нее наверное уже и не особо актуально, пс3 давно мертва, но всё же) — там просто берут, и заменяют часть модулей в прошивке на старые версии, и всё опять взламывается.
Для X360 же никаких подобных «легких» программных взломов нет и скорее всего не предвидится — только пайка, только хардкор.
Единственное, когда на пс3 надо было что-то паять — это в период до HEN, когда ставили аппаратные эмуляторы BD-привода, по типу Cobra ODE.
По поводу уязвимостей — весь взлом системы X360 начался с простого программного бага в гипервизоре, для запуска достаточно было игру одну запустить (см первую часть серии статей). JTAG Hack — тот же самый программный баг, но похитрее завёрнутый.
Для всего этого пришлось собрать teensy программатор с рассыпухи, влить в него фирмварь)
Щас как вспомню… проще было заплатить за прошивку мастеру чем так парится. Зато какой челендж, опыт :)
Но даже здесь, изначально прошиваемую приставку (заводская <3.55) всё равно можно было взломать после обновления ПО, пусть и с пайкой.
Для сравнения, X360 если обновить даш — всё, с концами, из-за фьюзов даунгрейд невозможен, и JTAG уже никогда на эту консоль не поставить.
Т.е. MS смог закрыть программную дырку апдейтом ПО даже на уязвимых консолях, на консоли от Sony — это невозможно, дыру закрыли только в новых аппаратных ревизиях приставки.
Потому и говорю, что у Майков на самом деле гораздо лучше вышла защита, привод разве что подвел.
И, кстати, для PS3 сейчас придумали и полностью программный даунгрейд, даже при обновлении на последнюю официальную прошивку — всё откатывается через эксплойт, паять ничего не надо.
вопрос чем читать\шить нанд?
переделать arduino,
найти комп с LPT,
другой JTAG пограмматор(например stlinkv2).
или есть другие варианты патча нанд?
SPI/JTAG адаптер на FT232H стоит 5 баксов, более полезная штука, софт от 360Squirt должен подойти
клоны JR Programmer чуть подороже, но и пошустрее будут. работает через JRunner
а для SPI(sck rst mosi miso gnd/vcc), у меня «ведро» разных spi программаторов и покупать еще один не хотелось бы, в любом случае можно попробовать через LPT или купить MTX накрайняк
Вам спасибо за ответ, буду пробовать =)
MTX SPI Flasher народ умудряется для прошивки глич-платки XC2C64A использовать (она как раз по JTAG шьётся) — вы, наверное, эту схему нашли. Сам NAND Xbox 360 читается по SPI через южный мост. Наверняка можно что-то сварганить на Arduino или CH341A, но это возиться надо и кодить :) правда, не искал, может уже и появились готовые проекты для этого
Все очень плохо/хорошо, смотря с какой стороны смотреть. Постарались они там на славу. Пс4 вон смогли нагнуть и все оказалось там не особо наворочено. К xbox one я даже не видел, чтобы кто-то подступился.
А насчет ваших ключей — очень странно, ключи читаются полностью программным методом, сверлить для установки эмулятора не требуется.

Спасибо за статьи и за все, что сделал для комьюнити 360.
У меня, что-то из отдаленного, вспомнилось — BenqSiemens E71, разблокировка иголкой какой-то ноги проца на массу, ельфы… было время)
Большое спасибо, за заключительную часть этого технотриллера, с
В итоге, мы можем зашифровать «CB_A», пропатчить зашифрованный «CB_B» (чтобы он не выполнял расшифровку вообще) и положить в открытом виде «CD» со своим кодом!
Вот это тоже не понятно.
Если вы не знаете ключа, как можно «зашифровать CB_A»?
Я так понял он не меняется? Или его тоже можно подменить?
А как работал DGX если там навтыкали слипов и убрали POST?Вместо нового «CB_A» записывали старый, уязвимый. + такой же старый CB_B в незашифрованном виде.
как можно «зашифровать CB_A»Он шифруется фиксированным ключом, одинаковым для всех (1BL Key). Потому и можно его в любую приставку записать было. Проблема была запустить CB_B из этого CB_A, не зная уникального ключа CPU
обратите внимание на «катушку» снизу фотоДа там не только на конденсаторе намотано, а даже и на радиаторе…
А документация такое не описывает, это глюк, недокументированное поведение, нарушение нормальной работы процессора. Изначально находили, пытаясь воздействовать на объект разными методами на грани адекватного — например, CLK-глич вносит сбой в частоту работы процессора, нарушается конвейер исполнения, происходит глюк. Просадка по питанию нарушает работу компараторов внутри проца, изменяя логические уровни. Так и с линией RESET — кто-то однажды подумал, а что, если жахнуть на него совсем короткий импульс — перезагрузится или нет? В документации, к примеру, говорится, что для сброса нужно занулить линию на 1мс. В таком случае зануление на 1мкс явно будет граничной ситуацией с неопределенным поведением. Вот и глюки
В сообществе возникала мысль, что кто-то в Микрософт постоянно сливает информацию о внутреннем устройстве очередных плат?
И сколько всего разных плат получилось в итоге?
А что именно, по предположениям сообщества, сливалось? На плате и так видно расположение компонентов. Сомневаюсь, что были сливы.
Мажорных ревизий 8:
Xenon, Zephyr, Opus, Falcon, Jasper, Trinity, Corona, Winchester
Но, к примеру, тех же Corona минимум 3 ревизии самой платы и 6 видов вообще.
А ещё для каждой ревизии есть XDK вариант для разработчиков.
Довольно необычно выглядит удаление POST шины с платы — просто удалили дорожки в PCB-редакторе, оставив переходные отверстия.
Году в 2013 ковырял свой Jasper Elite сам. Привод легко поддался iXtreme 3.0 (резистор 22 Ома), а вот FreeBoot не получился — аппаратно все модификации провел, мод-чип напаял и настроил, флешку через LPT-порт древнего компа аж за полтора часа прочитал, а вот прошивка, которую собрал и залил обратно, стартовать упорно отказывалась — по вращению кулеров было слышно, как чип постоянно и бесконечно перезагружает процессор. Убив два выходных, вернул всё в сток и всё снова заработало. Позже отнес в контору, где за 1 день и 3000 рублей всё сделали, ещё сказали, что очень удачная консоль попалась, всё легко получилось. Что я сделал не так — так и осталось загадкой, да и не вспомнить уже за давностью лет. Ну, за то другу в PS2 чип установил вслепую, и оно сразу заработало.
В общем, в итоге консоли перестали взламывать не потому, что это сложно, а потому, что игры стали выходить кривые и с 15FPS, что сделало обязательным подключение к интернету и регулярные обновления. А какие времена интересные были.
Можно свой ключ CPU зашить, можно самостоятельно фьюзы выставить как захочется, но проверку подписи в ROM отключить нельзя.
Свою ОС — можно и через RGH. Линукс, к примеру, запускается.
Загрузчик второго уровня shadowboot (2BL SB), для которого имеются приватные ключи, при запуске проверяет конфигурацию фьюзов и если выставлен бит «Production», прекращает загрузку. Поэтому его запуск возможен только на XDK и нулевых CPU, где этот бит не стоит. Это если совсем по-простому.
1BL проверяет 2BL через RSA-2048, дальше в релизной цепочке CB->CD->CE->CF->CG просто проверяют друг друга по хеш-суммам, кроме последнего этапа CF-CG, где тоже RSA-2048.
А вот в дебажных SB->SC->SD… уже на ранних этапах RSA-2048, и для этапа SB->SC есть ключ.
Защита и взлом Xbox 360 (Часть 3)