Перейти к публикации

Reset Glitch Hack


XEO
 Поделиться

Рекомендованные сообщения

Наконец-то метод джтага работает на нексеноновских консолях (да ... запускаем неподписанный код на СЛИМАХ и всех версиях дашборда на толстых консолях!!!)

 

Это так-же значит , что Вы сможете запустить приятный стафф , например игры с жесткого диска.

 

Источник

 

 

Полный гайд / Файлы / Исходники / Диаграммы для SLIM версии

 

Вы думаете это невозможно?

 

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

 

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

 

ZEPHYR, FALCON, JASPER и TRINITY (aka SLIM!)

(не важно на каком дашборде!!!)

 

 

 

The Xbox 360 reset glitch хак

 

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

 

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

 

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

 

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

 

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

 

- Хеш фьюзов.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

===============================

 

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

 

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

 

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

 

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

 

- Мы подали CPU_PLL_BYPASS сигнал перед POST кодом 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.

 

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

 

В ролях

======

 

GliGli, Tiros: Реверс инжинеринг и разработка хака.

cOz: Реверс инжинеринг, бета тестинг.

Razkar, tuxuser: бета тестинг.

cjak, Redline99, SeventhSon, tmbinc, и все, кого забыл... : Основной реверс инжинеринг и хаки 360.

 

XEO: с душею превел для вас этот фак по работе данного хака, всегда готов рассказать вам, как он работает ;)

 

_______________________________________________

 

 

Перевод BY_XEO, специально для Xboxland.net! Копирование разрешено с указанием автора и форума!

 

Так люди не паникуем - это способ запуска своего кода - ДАШБОРДА ЕЩЕ НЕТУ!!!

 

НО ВЗЛОМ ЕСТЬ!!!

 

FAQ ggBuild 0.33b[RUS] BY_XEO

Изменено пользователем XEO
Ссылка на комментарий
Поделиться на других сайтах

Ы первый!

Ты тока подпиши что осуществимо только в условиях мастерской в которой мастеру нех делать :biggrin:

И ещё контроллер нужен на который ценника тоже нет и не продается.

Изменено пользователем MAXIX
Ссылка на комментарий
Поделиться на других сайтах

Нет слов.... просто нет слов! :wacko2:

Не 1 апреля вроде

Изменено пользователем Keeper
Ссылка на комментарий
Поделиться на других сайтах

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

Давайте плату эту! я уже провода нарезал :biggrin:

Чую щас в 100 баксов на этот контроллер ценник выкатят

Ссылка на комментарий
Поделиться на других сайтах

Сейчас Chippy сваяет... вообще там дамп снимать надо как вижу. Старый прошивальшик м.б. и подойдет.
Ссылка на комментарий
Поделиться на других сайтах

Хорошо конечно если правда, но верится пока слабо. Изменено пользователем ZooFill
Ссылка на комментарий
Поделиться на других сайтах

сначала снять дамп

потом прошить контроллер

потом припаять всё это на плату бокса

ну и дождаться выхода прошивки которой еще нету

потом её залить в бокс

всего-то делов :biggrin:

Ссылка на комментарий
Поделиться на других сайтах

привод не важно какой у слимовой консоли?

На привод пох. Взламывается сама консоль, а не привод

Ссылка на комментарий
Поделиться на других сайтах

Парни,не особо понимаю в этом.у меня слим проша 1.91,даш 13599.подойдёт для фрибута по данному методу?
Ссылка на комментарий
Поделиться на других сайтах

Так проверяйте заодно качество перевода - я волнуюсь и спешу)

Добавил еще кусок)

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...