360 [RGH] Reset Glitch Hack

Тема в разделе "Xbox Series X", создана пользователем Legion90, 29 авг 2011.

  1. Legion90

    Legion90 Well-Known Member

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

    Следим за развитием событий.
     
    Vitiaz нравится это.
  2. SAMuel

    SAMuel Alpian Warrior Glegleddore Gleglezavr

    Сообщения:
    660
    Симпатии:
    13
    Баллы:
    68
    Интересно. посмотрим что будет дальше происходить.
     
  3. Vitiaz

    Vitiaz Well-Known Member

    Сообщения:
    1.516
    Симпатии:
    915
    Баллы:
    253
    Legion90, благая весть :)
     
  4. dimm

    dimm Administrator Команда форума

    Сообщения:
    30.274
    Симпатии:
    9.180
    Баллы:
    623
    "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 :)
     
  5. Fenix

    Fenix Злой Гений Базара

    Сообщения:
    4.118
    Симпатии:
    200
    Баллы:
    223
    Пока что слишком сложно для рядового обывателя :)
    Подождем дойдет ли проект до стадии, "вставте эту штуку вот сюда, или припаяйте эту мандулу вот сюда и все будет прекрасно работать" и тогда будет счастье.
     
  6. dimm

    dimm Administrator Команда форума

    Сообщения:
    30.274
    Симпатии:
    9.180
    Баллы:
    623
    C JTAG-ами так никогда не было и не будет. Геморрой был, есть и будет.
     
  7. Fenix

    Fenix Злой Гений Базара

    Сообщения:
    4.118
    Симпатии:
    200
    Баллы:
    223
    ну неважно как было сложно, главное чтоб была нормальная цепочка действий с гарантированным результатом, чтоб после всех сложных и не очень манипуляций все работало.
     
  8. Legion90

    Legion90 Well-Known Member

    Сообщения:
    443
    Симпатии:
    23
    Баллы:
    73
    Я думаю, что скорее проект дойдёт до стадии: "заплати дяде полтос, дядя припаяет эту мандулу вот сюда и все будет прекрасно работать".
     
  9. батарейкин

    батарейкин дважды будда

    Сообщения:
    2.200
    Симпатии:
    903
    Баллы:
    273
    а заделитесь ссылкой на инструкцию для "толстого" богза. провернул-бы на своем.
     
  10. jaga

    jaga фальшивый кавказец

    Сообщения:
    2.041
    Симпатии:
    2.724
    Баллы:
    403
  11. dimm

    dimm Administrator Команда форума

    Сообщения:
    30.274
    Симпатии:
    9.180
    Баллы:
    623
    Не торопитесь, нужно выждать месячишко-другой как минимум. Авторы могут легко отказаться от платки Xilinx coolrunner ii cpld xc2c64a в пользу какого-нибудь другого контроллера для обеспечения более стабильного запуска.

    За это:
    полтоса не жалко.
     
  12. Legion90

    Legion90 Well-Known Member

    Сообщения:
    443
    Симпатии:
    23
    Баллы:
    73
    Так и я про это. Лучше подождать, а потом бокс купил, тебе его прошили, наслаждаешься.
     
  13. Snake_rus

    Snake_rus Well-Known Member

    Сообщения:
    1.666
    Симпатии:
    149
    Баллы:
    103
    Спецов подобного уровня у нас мало , так что цена Jtag стабильно высокая .
    Меня лично останавливало то что JTAG были не на джаспере .
     
  14. Legion90

    Legion90 Well-Known Member

    Сообщения:
    443
    Симпатии:
    23
    Баллы:
    73
    Цена на ЖТАГ стабильно высокая потому, что слишком мало консолей можно было подвергнуть такому хаку.
     
  15. Fenix

    Fenix Злой Гений Базара

    Сообщения:
    4.118
    Симпатии:
    200
    Баллы:
    223
    Меня это тоже останавливало и продолжает останавливать т.к. у меня аж 3 ящика уже сгорело, и иметь горелый четвертый ящик за такие бабки не хочется, мне проще пару нужных игр в псн купить и поиграть.

    А сейчас если будет решение для нормальных ревизий консоли за разумные деньги , то я с удовольствием воспользуюсь.
     
  16. Snake_rus

    Snake_rus Well-Known Member

    Сообщения:
    1.666
    Симпатии:
    149
    Баллы:
    103
    У меня тоже кстати три бокса покраснели ... называется позаботились об экологии , без свинцовая пайка в угоду зелёным обернулась миллионами боксов на помойке .
    Там то они уж точно не будут загрязнять экологию :)
     
  17. dimm

    dimm Administrator Команда форума

    Сообщения:
    30.274
    Симпатии:
    9.180
    Баллы:
    623
  18. ArhiAngel

    ArhiAngel Painkiller

    Сообщения:
    4.371
    Симпатии:
    342
    Баллы:
    253
    :D
     
  19. Legion90

    Legion90 Well-Known Member

    Сообщения:
    443
    Симпатии:
    23
    Баллы:
    73
    Я так понял, что взломанного даша пока нет. Поэтому особо заморачиваться с этим хаком смысла не вижу. Через пару месяцев опять будут по 20 баксов продавать. Если всё заработает, то производители x360key оказались в глубоком пролёте.
     
  20. dimm

    dimm Administrator Команда форума

    Сообщения:
    30.274
    Симпатии:
    9.180
    Баллы:
    623
    Ветераны PS2 сцены подтягиваются со своими платами для GlitchHack-а - Matrix Team. Скоро в продаже платка от них:
    Matrix Glitcher 360
    [​IMG]
    http://infinitymod.com/matrixglitcher360.html
    Максимальное время загрузки (2 минуты) не очень радует, прямо как PC :)