360 [RGH] Reset Glitch Hack

Legion90

Well-Known Member
Регистрация
14 Май 2007
Сообщения
443
Реакции
23
Пока не было опровержений, что это фейк, но ходит новость о том, что появилась возможность JTAGгнуть любые консоли, в том числе и слимы.
По ссылке туториал.

Следим за развитием событий.
 
Пока не было опровержений, что это фейк, но ходит новость о том, что появилась возможность JTAGгнуть любые консоли, в том числе и слимы.
По ссылке туториал.

Следим за развитием событий.
Интересно. посмотрим что будет дальше происходить.
 
Legion90, благая весть :)
 
"Reset Glitch JTAG Hack For Silm And Fat XBOX360-iND"
Нифига себе, спасибо! Перевод принципа работы хака с xboxland (http://www.xboxland.net/forum/index.php?showtopic=87034 )
The Xbox 360 reset glitch хак

Некоторые факты:

tmbinc сказал лично, софтверные попытки запуска неподписанного кода на 360 в большинстве случаев неработает, она разработана таким образом что защита блокирует их.

Процессор стартует исполнение кода с ROM (1bl), который потом загружает подписанный RSA и закриптованный RC4 кусок кода из нанда (CB).

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

шифрование и сильное хеширование. Шифр разный с каждой загрузкой , потому что в него добавляется соль по минимуму из этих мест:

- Хеш фьюзов.

- Значение встроенного счетчика

- Полностью рандомное значение идет из железного генератора случайных чисел, встроенного в процессор! На толстых версиях этот генератор мог быть софтово отключен, но у нас новя проблема - проверка

рандомности. (считает до 1 бита в СВ), и ждем реально рандомное число.

СВ может выполнять некое подобие програмного движка , основанного на байт-коде, чьим заданием будет инициализация DRAM, СВ может загрузить слудующий загрузчик (CD) из нанда в него и запустить его.

Стандартно CD будет загружать основное ядро из нанда ,патчить его и запускать.

Ядро содержить маленький , привилегированный кусочек кода (гипервизор), когда консоль стартует - это единственный код у которого будет достаточно привилегий для выполнения неподписанного кода.

В версиях ядра 4532/4548, критическая уязвимость в этом месте и все известные нам методы взлома, опираются на эти ядра для запуска неподписанного кода.

На сегодняшних 360, CD содержит хеш этих 2х ядер и перестает выполнять процесс загрузки при попытке их выполнения.


Гипервизор относительно маленький кусок кода , но проверяет - используете ли Вы эти уязвимости или нет и удостоверяется что Вы несможете!

С другой стороны, tmbinc сказал, что 360 небыла разработана с защитой от некоторых видов ЖЕЛЕЗНЫХ атак и "глюков"

Глюками сдесь будем называть исполнение процессорных багов в электронных нуждах.

Этим путем мы пойдем для выполенения неподписанного кода.


Несколько слов о ресетном глюке
===============================

На толстых консолях, загрузчик имел глюк в CB , и мы могли делать с CD , что хотели.

cjak нашел это путем подачи CPU_PLL_BYPASS сигнала, частота ЦПУ понижалась намного, есть тестовый пин на материнке, который показывает сскорость ЦПУ, 200 МГц при старте даша, 66,6 Мгц при

старте загрузчика, и 520КГц при подачи сигнала.

Итак мы пошли таким путем:

- Мы подали CPU_PLL_BYPASS сигнал перед пост кодом 36 (hex).

- Мы подождали старта POST 39 (POST 39 это сравнение памяти между внутренним хешем и хешем образа), и запустили счетчик.

- Когда тот счетчик достигает точного значения (обычно около 62% длины POST 39), посылаем 100нс импульс на CPU_RESET.

- Мы ждем некоторое время и снимаем CPU_PLL_BYPASS сигнал.

- Скорость ЦПУ возвращается в норму, и с небольшим бонусом - вместо получения ошибки POST error AD, процесс продолжается и СВ загружает наш кастомный CD.

Нанд содержит пару zero-paired CB, нашу прошивку в кастомном CD и модифицированный SMC образ.

Глюк в нормальных условиях неповторить - мы испрользуем модифицированный SMC образ, который перезагружается постоянно (стоквый образ перезагружает 5 раз и дает РРОД), после консоль загружается как
положенно, в большинстве случаев глюк успешен в течении 30 секунд от запуска до конца.

Детали хака слим версии
=================

Загрузчик , который мы гличили - CB_A, и мы можем запустить CB_B, как хотим.

В слимках мы несмогли найти пин на материнке для отслеживания CPU_PLL_BYPASS.

Нашей первой идеей было удаление 27Мгц мастер-резонатора, и генерация нужных нам чатот, но это оказалось технологически сложно и мы отошли от этой идеи.

Затем мы стали искать другие пути для снижения частоты ЦПУ и обратили внимание на то, что HANA чип имеет настраиваемые PLL регистры для частоты 100 Мгц, которые ведут за собой ЦПУ и ГПУ и другие детали.

Эти регистры записываются в SMC по шине i2c.

Доступ к i2c неограничен, даже есть пин на материнке (J2C3).

Итак HANA чип стал нашим оружием замедленияя ЦПУ.

Итак, как - же это пашет?

- Мы посылаем i2c комманду HANA чипу для замедления ЦПУ на POST коде D8.

- Мы ждем старта POST DA (POST DA это сравнение памяти между внутренним хешем и хешем образа), запускаем счетчик.

- Когда счетчик достигает точного значения, посылаем 20нс сигнал на CPU_RESET.

- Ждем некоторое время и посылаем i2c комманду на HANA чип для восстановления скорости ЦПУ.

- Скорость ЦПУ восстанавливается и опять удача - вместо получение ошибки POST F2, процесс загрузки продолжается и CB_A грузит наш кастомный CB_B.

Когда CB_B стартует, DRAM не инициализируется, нам только нужно применить несколько патчей для запуска любого CD, патчи:

- Все время деактивируем режим zеro-paired, итак мы можем юзать патченный SMC.

- Не декриптуем CD, вместо планируемого плейнтекста CD в нанде.

- Не прекращаем процесс загрузки если хеш CD нехорош.

CB_B это закриптованный RC4, ключ идет из ЦПУ ключа, и какже мы можем пропатчить CB_B без знания ЦПУ ключа???

Обычный RC4:

закриптованный = плейнтекст xor псевдо-рандомный-ключпоток

Итак - если мы знаем плейнтекст и закриптованную часть - мы получим ключпоток, и с ним мы можем криптовать наш код!

Выглядит так:

угаданное-псевдорандомное-значение = закриптованное xor плейнтекст

новое-шифрованное = угаданное-псевдорандомное-значение xor плейнтекст-патч

Думаете это проблема что первее курица или яйцо? Как мы получим плейнтекст??

У нас есть плейнтекст из CB толстых консолей и мы заменив пару байт получили плейн такойже как и в CB_B, и мы можем закриптовать маленький кусочек кода для дампа ЦПУ ключа и декриптовать CB_B!!!

Нанд содержит CB_A, патченный CB_B, нашу полезную нагрузку в кастомном CD плейнтексте, и модифицированный SMC.

SMC модифицирован для бесконечной перезагрузки, и предотвращения посылки i2c , пока мы шлем наши.


И ТЕПЕРЬ ВЫ ПОНЯЛИ, ЧТО CB_A НЕ СОДЕРЖИТ ПРОВЕРОК В ФЬЮЗАХ! И ЭТО НЕПРОПАТЧИВАЕМЫЙ ХАК!!!!

Подводные камни
===============

Не все еще идеально:

- Последовательность глюков, которую мы проверили (25% успеха на попытку). Может занят пару минут на загрузку.

- Эта последовательность похоже идет изза какогото хеша модифицированного загрузчика (CD для тослстых и CD_B для слимок).

- Требуется хорошее железо для посылок ресет сигналов.

Текущее состояние дел
================

Мы использовали плату Xilinx CoolRunner II CPLD (xc2c64a), потомучто быстрая, точная, обновляемая, дешевая и может работать на 2х разных логических напряжениях одновременно.

Использовали 48 Мгц частоту дежурного режима из 360 глюкометра (прим. переводчика). Для хака слима счетчик запускается на 96 Мгц.

CPID код записан в VHDL.

Нужно отслеживать ПОСТ коды , мы использовали пост - пины , мы сейчас можем отслеживать пост через 1 пост бит , это снижает колличество проводов!

В ролях
======

GliGli, Tiros: Реверс инжинеринг и разработка хака.
cOz: Реверс инжинеринг, бета тестинг.
Razkar, tuxuser: бета тестинг.
cjak, Redline99, SeventhSon, tmbinc, и все, кого забыл... : Основной реверс инжинеринг и хаки 360.

XEO: с душею превел для вас этот фак по работе данного хака, всегда готов рассказать вам, как он работает
Побежал искать в инете платку Xilinx CoolRunner II CPLD :)
 
Пока что слишком сложно для рядового обывателя :)
Подождем дойдет ли проект до стадии, "вставте эту штуку вот сюда, или припаяйте эту мандулу вот сюда и все будет прекрасно работать" и тогда будет счастье.
 
Подождем дойдет ли проект до стадии, "вставте эту штуку вот сюда, или припаяйте эту мандулу вот сюда и все будет прекрасно работать" и тогда будет счастье.
C JTAG-ами так никогда не было и не будет. Геморрой был, есть и будет.
 
ну неважно как было сложно, главное чтоб была нормальная цепочка действий с гарантированным результатом, чтоб после всех сложных и не очень манипуляций все работало.
 
Пока что слишком сложно для рядового обывателя :)
Подождем дойдет ли проект до стадии, "вставте эту штуку вот сюда, или припаяйте эту мандулу вот сюда и все будет прекрасно работать" и тогда будет счастье.
Я думаю, что скорее проект дойдёт до стадии: "заплати дяде полтос, дядя припаяет эту мандулу вот сюда и все будет прекрасно работать".
 
а заделитесь ссылкой на инструкцию для "толстого" богза. провернул-бы на своем.
 
Не торопитесь, нужно выждать месячишко-другой как минимум. Авторы могут легко отказаться от платки Xilinx coolrunner ii cpld xc2c64a в пользу какого-нибудь другого контроллера для обеспечения более стабильного запуска.

"заплати дяде полтос, дядя припаяет эту мандулу вот сюда и все будет прекрасно работать"
За это:
в работу входит разобрать бокс целиком до последнего винтика, вынуть мать, так как используется обе стороны платы, считать нанду, время занимает разное так как нанды есть 16, 256 и 512, затем пересобрать в удобоваримую и залить, отпаять флэшер, напаять контроллер, проверить, собрать как на заводе
полтоса не жалко.
 
Не торопитесь, нужно выждать месячишко-другой как минимум. Авторы могут легко отказаться от платки Xilinx coolrunner ii cpld xc2c64a в пользу какого-нибудь другого контроллера для обеспечения более стабильного запуска.


За это:

полтоса не жалко.
Так и я про это. Лучше подождать, а потом бокс купил, тебе его прошили, наслаждаешься.
 
Спецов подобного уровня у нас мало , так что цена Jtag стабильно высокая .
Меня лично останавливало то что JTAG были не на джаспере .
 
Цена на ЖТАГ стабильно высокая потому, что слишком мало консолей можно было подвергнуть такому хаку.
 
Спецов подобного уровня у нас мало , так что цена Jtag стабильно высокая .
Меня лично останавливало то что JTAG были не на джаспере .
Меня это тоже останавливало и продолжает останавливать т.к. у меня аж 3 ящика уже сгорело, и иметь горелый четвертый ящик за такие бабки не хочется, мне проще пару нужных игр в псн купить и поиграть.

А сейчас если будет решение для нормальных ревизий консоли за разумные деньги , то я с удовольствием воспользуюсь.
 
У меня тоже кстати три бокса покраснели ... называется позаботились об экологии , без свинцовая пайка в угоду зелёным обернулась миллионами боксов на помойке .
Там то они уж точно не будут загрязнять экологию :)
 
Платка Xilinx XC2C64A CPLD Core Module CoolRunner2 Mini Board, необходимая для джейтага взлетела с 20 до 120 баксов на ибэе!!!
Вот барыги!
xilinx.webp
http://www.ebay.com/itm/Xilinx-XC2C...710?pt=LH_DefaultDomain_0&hash=item2eb79383ee
 

Вложения

  • xilinx.webp
    xilinx.webp
    9,9 KB · Просмотры: 883
Я так понял, что взломанного даша пока нет. Поэтому особо заморачиваться с этим хаком смысла не вижу. Через пару месяцев опять будут по 20 баксов продавать. Если всё заработает, то производители x360key оказались в глубоком пролёте.
 
Ветераны PS2 сцены подтягиваются со своими платами для GlitchHack-а - Matrix Team. Скоро в продаже платка от них:
Matrix Glitcher 360
glitcherpic.jpg

• Booting of unsigned code on Xbox 360 and XBOX360 slim
• Compatible with both X360 (except Xenon) and X360 slim
• Works with all X360 NAND programmers
• Compatible with all X360 kernel versions
• Quick installation (7 Wires on Slim or 6 Wires on Phat)
• Compact PCB size with easy to solder pads.
• Booting of X360 unsigned code within max of 2 minutes
• Matrix Design and Quality
• Budget pricing
http://infinitymod.com/matrixglitcher360.html
Максимальное время загрузки (2 минуты) не очень радует, прямо как PC :)
 
Назад
Сверху