Восстановление PSP-3000 на базе TA-090 и TA-092

Baryon Sweeper Эмулятор сервисного инструмента JigKick с возможностью восстановления PSP-3000 на базе TA-090 и TA-092

За чуть более, чем десять лет все пользователи PSP-3000 и позднее свыклись с тем, что их консоли не поддаются восстановлению в домашних условиях из соображений «безопасности» Сони. По сей день владельцы этих консолей боятся брика, как огня. Поскольку гарантия на все PSP уже закончилась, брикнутые PSP поздних моделей отправляются разве что на запчасти, либо в долгий ящик, откуда бы не вернулись никогда… если бы не существовала эта тема 

Вступление

Благодаря усердному труду известных хакеров сцены PlayStation (zecoxaoProximaMathieu Hervais) на костях до недавнего времени закрытой темы по взлому батарейки Пандоры на PSP-3000 было продолжено дело Бори — были успешно сдамплены прошивки системных контроллеров некоторых поздних моделей, а из них были получены ключи системного контроллера, используемые для генерации шифрованных запросов 0x80 и 0x81, отсутствие которых в потребительских батарейках поставило крест на легкодоступной Пандоре.
Proxima создал скрипт, позволяющий генерировать требуемые ответы.
Применить это к физическим PSP можно только при наличии эмулятора контроллера батарейки — того, что мы всей командой хотим Вам представить.

Демонстрация работы BaryonSweeper на 2000

Демонстрация работы BaryonSweeper на 3000 TA-090 (спасибо Yoti за снятие проклятья безэкрания!)


BaryonSweeper стал возможен благодаря:

  • M4j0r — помощь в эксплуатации глюка Voltage Fault Injection сискона;
  • WildcardSean Shablack aka Kyp40 aka FBIsoBOT — Эксплуатация глюка и дамп сискона;
  • Proxima — обратная разработка прошивки сискона, скрипт генерации ответов на запросы аутентификации;
  • khubik — код эмулятора батарейки, порт скрипта генерации ответов, дизайн интерфейса;
  • dogecore — порт скрипта генерации ответов, починка потоков, код интерфейса;
  • Mathieu Hervais — код хоумбрю decrypt_os2, decrypt_sp;
  • SSL/Zerotolerance — возможность обратного шифрования для расшифрованных файлов;
  • zecoxao — порты decrypt_os2 и decrypt_sp на ПК, обеспечение платами, помощь в порте скрипта генерации ответов;
  • Yoti — улучшения decrypt_sp, MSID Dumper, PSP-3000 для тестов (<3), участие в теме взлома Пандоры PSP-3000;
  • EriKPshat — информация о JigKick, участие в теме взлома Пандоры PSP-3000, инструкции по созданию комплектов Пандоры, создание официального сервисного комплекта JigKisk PSP-100x/200x из дампа оригинальной сервисной карты;
  • Boryanlport3dx3dstasik007 и многие другие из темы взлома Пандоры PSP-3000 — записи коммуникации батарейки и PSP, обратная разработка протокола коммуникации, схемы аппаратного обеспечения для взаимодействия с PSP и многое другое…

Поддерживаемые модели

PSP-1000: поддерживаются все модели, необходимости в клоне официальной карты JigKick нет.
PSP-2000: поддерживаются все модели; клон официальной карты JigKick необходим только TA-088v3 (DATE CODE 8C).
PSP-3000: частичная поддержка, всем необходим клон официальной карты JigKick!

  • TA-090v2 (DATE CODE 8C, 8D, 9A, 9B) — поддерживается
  • TA-092 (DATE CODE 9B, 9C) — поддерживается начиная с R6
  • TA-093 (DATE CODE 9D, 0A, 0B, 0C) — не поддерживается
  • TA-095v1 (DATE CODE 0C, 0D) — не поддерживается, минимальная версия прошивки выше всех известных JigKick карт!
  • TA-095v1 (DATE CODE отсутствует) — не поддерживается, минимальная версия прошивки выше всех известных JigKick карт!
  • TA-095v2 (DATE CODE 1A, 1B, 1C, 1D) — не поддерживается, минимальная версия прошивки выше всех известных JigKick карт!

PSP-N1000 (PSPgo) — не поддерживается
PSP-E1000 (PSP Street) — не поддерживается, минимальная версия прошивки выше всех известных JigKick карт!

Поддержка моделей, указанных в списке как неподдерживаемые ожидается и вводится по мере дампа и обратной разработки прошивок системных контроллеров. Точных дат нет, просим вас не требовать добавить новые консоли — это будет сделано сразу же, как только будут получены ключи для конкретной модели.
Также идёт поиск решения проблемы с отсутствием дампов карт JigKick, способных восстанавливать консоли с минимальной версией прошивки 6.30 и выше — скорее всего, поддержка таких консолей появится в последнюю очередь.

Аппаратная часть

Создание аппаратной части эмулятора батареи

Для изготовления потребуется конвертер из USB в TTL (подойдёт Arduino с замкнутыми RESET и GND), резистор на 10 кОм, диод 1N4148 и немножко креатива с тем, как подключить землю и сам однопроводный UART (он же K-Line) к PSP, причём не допустив к среднему контакту родную батарею PSP 

Авторский метод — через жертвенную батарею либо изоляцию контакта на уже существующей. Не забудьте соединить земли USB-TTL с PSP, иначе ничего не заработает.

Альтернативу реализовал dee098 — вам не потребуется компьютер и USB-TTL-адаптер, лишь Arduino, что делает возможным реализацию портативного инструмента восстановления. Пока только для продвинутых пользователей, способных без посторонней помощи поменять ответы на требуемые запросы, скачать здесь — pspSerial_v01_20210116.7z
Если хотите превратить вариант с Arduino / ATMega328p в конечный продукт и у вас хватает на это усидчивости и терпения — Valera0141 с некоторой помощью от dee098 сделал свой проект портативной сервисной батарейки.

Что такое USB-TTL преобразователь?
USB-TTL преобразователь определяется в системе как последовательный порт, обеспечивая согласование уровней и, собственно, связь с устройствами, использующими UART (как в нашем случае). Может быть исполнен в схожести в флешкой или как кабель.

Коммуникация с устройствами происходит через пины RX (как правило — белый) и TX (как правило — зелёный). Также обязательно соединять землю. Для общения с PSP нам требуется объединить 2 провода в 1 — для этого необходимо сделать переходник на однопроводный UART. Схемы даны ниже.

Предельно простая схема переходника на однопроводный UART (K-Line) и подключение к USB-TTL на диоде и резисторе

Более надёжные схемы на логических элементах И-НЕ

Схема переходника на однопроводный UART (K-Line) и подключение к USB-TTL для К561ЛА7, CD7400 и их полных аналогов

3.3 — 5V — питание
Ground — земля
PSP middle contact — однопроводная шина, идущая в средний контакт PSP
Не забывайте про цоколёвку микросхем (дуга слева). Не забудьте соединить резистором на 200-300 ом замкнутые нижние крайние две ноги с третьей справа верхней ногой.

Схема переходника на однопроводный UART (K-Line) и подключение к USB-TTL для CD4011 и её полных аналогов

Выполняется по аналогии с предыдущим за исключением чуть другого расположения выводов.

Если вы собрали всё правильно, убедились в наличии общей земли между адаптером, консолью и компьютером, желательно всё прозвонили — попробуйте запустить COM-терминал (например, Termite), подключиться к USB-TTL и вставить псевдобатарею (предпочитаемый способ — использовать родную батарею, изолировав средний контакт и поместив на его место проводок от однопроводной шины). Если увидите пакеты типа 5A 02 01 A2 — поздравляем, собрали правильно, можете приступать к следующему шагу.
Если что-то не заработало — убедитесь в работоспособности USB-TTL адаптера, в правильности и надёжности подключения и в том, что земля адаптера соединена с землёй PSP — это обязательно! Если не заработает, можете попробовать поменять TX и RX местами — они могут быть перепутаны на самом адаптере 
В противном случае, собирайте один из двух вариантов с микросхемой.

Создание JigKick карты

Насчёт этого вам следует обратиться за инструкцией в любую из этих тем:

Восстановление

  1. Вставьте карту памяти (с обычной Пандорой или клоном официального JigKick по необходимости) в PSP.
  2. Подключите свой USB-TTL преобразователь, к которому прилажен переходник на однопроводный UART (K-line), ведущий в PSP.
  3. Скачайте и распакуйте архив с программой последней версии и откройте baryonswp.exe. Как правило, он лежит в папке baryonswp/bin/Release.
  4. Убедитесь, что земли всех звеньев в цепи связаны, иначе ничего не выйдет!
  5. Нажмите на кнопку Start Service и подключите вашу PSP. Соединение будет логироваться в Connection Monitor.
  6. Для запуска в сервисный режим укажите серийный номер FFFFFFFF.
    Если PSP или COM-порт будут отключаться при подключении батареи к PSP — вероятно, не хватает тока.
  7. В сервисном режиме дождитесь надписи «OK» на весь экран. Процесс восстановления завершён.

Всем удачного поднятия кладбищ, ждите вестей о более поздних моделях. В архиве с каждой версией- исходный код на растерзание.

Чейнжлог

Критические обновления (с поддержкой новых моделей) будут отмечены зелёным цветом.

  • Baryon Sweeper R10 — R10(210221).7z
     Что изменено:
    • Логирование эха настоящего ответа вместо ожидаемого
    • Исправлено форматирование ответа при выводе
    • Добавлен ключ 08 для PSP Slim (2000)
    • Уменьшено потребление ЦП
  • Baryon Sweeper R7 — R7(230121).7z
     Что изменено:
    • Теперь чексуммы не выводятся одной цифрой вместо правильного хекс-байта
    • Добавлена возможность отключить оповещения о отсутствующих ключах
    • В случае отсутствия ключа 08 оповещение теперь другое, так как его отсутствие некритично
  • Baryon Sweeper R6 — R6(180121-2).7z
     Что изменено:
    • Убран COM-монитор, по непонятной причине нарушавший работу эмулятора
    • Эмулятор переведён на старую схему ожидания сообщения в буфере
    • Добавлены ответы на запросы, необходимые для перехода к шифрозапросам 80-81 на TA-092 и выше
    • TA-092, похоже, случайно заработала 
  • Baryon Sweeper R4 — R4.cliFix(170121).7z
     Что изменено:
    • Исправлены фактические ошибки:
      • Добавлен сколько-то правильный монитор COM порта
      • Бывший «монитор» переименован в Program Log
    • Теперь эмулятор ждёт только следующий байт в пакете, а не весь пакет целиком
    • Теперь входной и выходной буфер порт перед началом эмуляции очищаются
    • Обновлён About 
  • Baryon Sweeper R3 — R3(170121).7z
     Что изменено:
    • Исправлено неправильное поведение при запуске с пустой графой COM-порта
    • Добавлены кнопки для быстрого выбора режима эмулируемой батарейки
    • Мелкие исправления интерфейса
  • Baryon Sweeper R2 — R2(150121).7z
     Что изменено:
    • Добавлена блокировка всех кнопок, кроме остановки во время работы
    • Добавлен ответ на запрос 0x16 (нужно для поддержки всех PSP-3000 в будущем)
    • Вторая часть ответа на 0х80 теперь случайна (аккуратная имитация поведения сервисной батарейки)
    • Обновлены благодарности в About, добавлена ссылка на английскую тему в Restore Guide
    • Добавлен вывод отладочных сообщений генератора ответов на шифрозапросы (галочка в правом нижнем углу)
    • Теперь случаи, в которых ключи для консоли отсутствуют, обрабатываются правильно
  • Baryon Sweeper R1 — начальный релиз (поддержка только TA-090) — baryonswp.7z

Syscons.bin

Источник: https://t.co/jI0HeeGaks