Новый взлом Xbox 360 - Glitch Hack

Тема в разделе "Всё о Freeboot", создана пользователем RichY, 28.08.2011.

Статус темы:
Закрыта.
  1. RichY

    RichY Администратор

    Регистрация:
    10.05.2011
    Сообщения:
    8.303
    Симпатии:
    1.518
  2. Megahare

    Megahare Пользователь

    Регистрация:
    25.08.2011
    Сообщения:
    34
    Симпатии:
    0
    Почему только на слимке? Там вроде и для фэток хак есть.
     
  3. Barman

    Barman Пользователь

    Регистрация:
    21.07.2011
    Сообщения:
    145
    Симпатии:
    5
    Хмм, я чё-то не до конца понял что этот хак делает именноо
    когда можно ожидат русика инструкцию
     
  4. Megahare

    Megahare Пользователь

    Регистрация:
    25.08.2011
    Сообщения:
    34
    Симпатии:
    0
    Он позволяет загружать неподписанный код, а значит можно загружать другие ОС, помимо родной
     
  5. otezz

    otezz Пользователь

    Регистрация:
    29.08.2011
    Сообщения:
    49
    Симпатии:
    1
    Осталось перевести инструкцию и сделать набор для взлома, как я понимаю, там нужно 2 приспособления либо купить либо сделать самому.
     
  6. otezz

    otezz Пользователь

    Регистрация:
    29.08.2011
    Сообщения:
    49
    Симпатии:
    1
    Наконец-то метод JTag работает на нексеноновских консолях (да, запускаем неподписанный код на Slim-консолях и всех версиях дашборда на толстых консолях!)
    Это также значит , что Вы сможете запустить приятные фичи: например, игры с жесткого диска.

    Источник: клик

    Полный гайд / Файлы / Исходники / Диаграммы: клик

    Вы думаете это невозможно?
    Вы думаете, хак возможен на тех старых JTag консолях?

    GliGli & Tiro скажут вам обратное! Они разработали хак, который работает на всех последних кернелах следующих плат:

    ZEPHYR, JASPER & TRINITY (aka SLIM!).
    (не важно на каком дашборде!)

    The Xbox 360 reset glitch хак

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

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

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

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

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

    • Хеш фьюзов.
    • Значение встроенного счетчика.
    • Полностью рандомное значение идет из железного генератора случайных чисел, встроенного в процессор! На толстых версиях этот генератор мог быть софтово отключен, но у нас новая проблема - проверка рандомности (считает до 1 бита в СВ), и ждем реально рандомное число.

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

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

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

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

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

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

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

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

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

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


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

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

      Итак мы пошли таким путем:
    • Мы подали CPU_PLL_BYPASS сигнал перед пост кодом 36 (hex).
    • Мы подождали старта POST 39 (POST 39 это сравнение памяти между внутренним хешем и хешем образа), и запустили счетчик.
    • Когда тот счетчик достигает точного значения (обычно около 62% длины POST 39), посылаем 100нс импульс на CPU_RESET.
    • Мы ждем некоторое время и снимаем CPU_PLL_BYPASS сигнал.
    • Скорость CPU возвращается в норму, и с небольшим бонусом - вместо получения ошибки POST error AD, процесс продолжается и СВ загружает наш кастомный CD.

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

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

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


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

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

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

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

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

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

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

      Итак, как - же это пашет?
    • Мы посылаем i2c комманду HANA чипу для замедления ЦПУ на POST коде D8.
    • Мы ждем старта POST DA (POST DA это сравнение памяти между внутренним хешем и хешем образа), запускаем счетчик.
    • Когда счетчик достигает точного значения, посылаем 20нс сигнал на CPU_RESET.
    • Ждем некоторое время и посылаем i2c комманду на HANA чип для восстановления скорости CPU.
    • Скорость CPU восстанавливается и опять удача - вместо получение ошибки 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, и мы можем закриптовать маленький кусочек кода для дампа CPU ключа и декриптовать CB_B!

      NAND содержит 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: с душою перевел для вас этот фак по работе данного хака, всегда готов рассказать вам, как он работает.
    --- добавлено: 29 авг 2011 в 06:41 ---
     
  7. RichY

    RichY Администратор

    Регистрация:
    10.05.2011
    Сообщения:
    8.303
    Симпатии:
    1.518
    Сегодня займусь переводом. Для фаток и так было, самое главное, что слим ломанули
     
  8. mr4room

    mr4room Гость

    УРААА!!!!! ЭТО ПОБЕДА!!!! МЕЛКОСОФТ - ВЕШАЙСЯ!!!!
     
    n00blo нравится это.
  9. RichY

    RichY Администратор

    Регистрация:
    10.05.2011
    Сообщения:
    8.303
    Симпатии:
    1.518
    Раньше был этот адрес, пришлось поменять из-за глюка :)
     
  10. Samson

    Samson Пользователь

    Регистрация:
    07.06.2011
    Сообщения:
    299
    Симпатии:
    10
    Хм. С перевода мало что понял, но наверняка здесь есть какие-то подводные камни.
    Даже если и реально будет сделать это, то мастера от 4к будут сдирать. Следующая версия дашборда все исправит. Хотя? Я так понял, что все это работает на любых дашбордах, в том числе и на будущих.
    Но плохое у меня предчувствие насчет этого. С этим будет какая-то херня, инфа 100%.
     
  11. Mak

    Mak Пользователь

    Регистрация:
    14.07.2011
    Сообщения:
    644
    Симпатии:
    61
    Что за платку они используют ? ( в конце инструкции "программирование CLPD" )
    Это что то специализированное или можно свободно достать, или в приставке стоит ?
     
  12. RichY

    RichY Администратор

    Регистрация:
    10.05.2011
    Сообщения:
    8.303
    Симпатии:
    1.518
    Достать можно, смотри список необходимого в самом начале
     
  13. otezz

    otezz Пользователь

    Регистрация:
    29.08.2011
    Сообщения:
    49
    Симпатии:
    1
    Ребят а когда фрибут делаешь, регион консоли остаётся ?
     
  14. RichY

    RichY Администратор

    Регистрация:
    10.05.2011
    Сообщения:
    8.303
    Симпатии:
    1.518
    Можно и поменять ;)
     
  15. otezz

    otezz Пользователь

    Регистрация:
    29.08.2011
    Сообщения:
    49
    Симпатии:
    1
    Уже нашел, но всё равно спасибо.
    --- добавлено: Aug 29, 2011 1:30 PM ---
    Почитал фак по Freeboot, трудновато. Если что обратится можно будет ?
     
  16. necit

    necit Пользователь

    Регистрация:
    11.08.2011
    Сообщения:
    49
    Симпатии:
    0
    И где купить можно эти платки? Где вообще все это можно купить?
     
  17. Mak

    Mak Пользователь

    Регистрация:
    14.07.2011
    Сообщения:
    644
    Симпатии:
    61
    Ну вроде понятно, что за микруха. А если не на 64 ,а на 128 скажем ? Можно ?
    И как собственно запускать игры то ?
     
  18. mr4room

    mr4room Гость

    Ребята, скажите а этот хак в дальнейшем подразумевает запуск фрибута? ато один "кекс" сказал что всё это чуш сабачая и игры только от нинтендо 64 работать будут:mad:
     
    n00blo нравится это.
  19. RichY

    RichY Администратор

    Регистрация:
    10.05.2011
    Сообщения:
    8.303
    Симпатии:
    1.518
    Подождите недельку, всё устаканится. Пока всё сыро слишком
     
  20. otezz

    otezz Пользователь

    Регистрация:
    29.08.2011
    Сообщения:
    49
    Симпатии:
    1
    лол что ли, что за бред он несёт.
     
Статус темы:
Закрыта.

Поделиться этой страницей