Зачем это надо?
а) Спортивный интерес
б) Замена EBOOT в образе /для архива/на случай убиения ранее рабочей игры/на случай убиения CryptoEngine
в) Реквест юзера на декрипт по какой-либо причине.
Требования: немного софта и здоровой интуиции, ибо не все действия очевидны и однозначны.
Софт: свежая ревизия эмулятора (на данный момент r1979), HEX-редактор (в примере использован WINHEX), UMDgen 4.0 (напомню, что все операции с ним следует проводить в отдельной папке и только после создания резервной копии образа).
Если вы хотите выдрать декрипт для имеющегося у вас образа игры, сразу переходите к п.5, если декриптуете, не имея образа - читайте с п.1.
1) Берем тестовый образ, специально созданный для проведения данных операций (test_image.7z в аттаче). Можно использовать любой, но это лишнее время и место.
2) Открываем его в UMDgen
3) Кидаем в SYSDIR требующий расшифровки EBOOT.BIN
4) Сохраняем Uncomressed (*.ISO) с любым именем
5) Открываем образ в эмуляторе. Если повезет, то эмулятор благополучно его расшифрует, после чего стартовать эмуляцию не надо! Если выдаст ошибку, либо окно о шифрованности загрузчика, что ж... значит справится с данным загрузчиком он пока не в состоянии и на этом все закончится. Если операция прошла успешно, то после дешифрации эмулятор произведет еще несколько операций до старта эмуляции, это можно отследить в логе.
6) Запускаем WINHEX > Alt+F9. Проматываем список и находим процесс Java (последние запущенные процессы в самом низу списка), раскрываем его дерево, выбираем Primary Memory, ОК.
7) Ctrl+Alt+X, вводим параметры поиска: 7F454C46 - это заголовок декрипта (7Fh и сразу после него слово ELF).
8) Сначала сохраним найденные куски в файлы приемлемых размеров - с ними удобнее работать. Выделяем начало загрузчика (символ 7Fh), затем Edit > Define Block и добавляем к адресу начала блока длину EBOOT.BIN с небольшим запасом (например вместо 4836160 байт прибавляем 5000000), вписываем этот адрес в графу конца блока и сохраняем блок в новый файл по Ctrl+Shift+N. После сохранения блоки автоматически откроются в редакторе, переходим к работе с ними, вкладку с открытой памятью эмулятора можно закрыть.
9) Проматываем вниз блока и ставим курсор на адрес, соответствующий длине EBOOT.BIN в байтах минус один, выделяем этот блок по Alt+2 и снова сохраняем в отдельный файл по Ctrl+Shift+N.
10) Полученный таким образом декрипт подменяем в образе игры обычным образом и играем. Если эмулятор выдает при запуске ошибку, значит найденный блок не декрипт (по указанным ниже приметам ошибиться трудно, но мало ли). Пробуем со следующим сохраненным блоком, один из них гарантированно правильный и рабочий.
Примечание. Найденных шаблонов может быть несколько и наша задача - найти правильный с первой попытки. Для этого и нужна интуиция, нужно немного уметь читать "матрицу" и видеть девушку в зеленых символах.
Перечислю несколько примет, по которым можно определить, то ли мы нашли:
а) cразу ищите до последнего найденного совпадения (F3 - продолжить поиск), как правило искомый декрипт - последний, начните с него.
б) начало кода декрипта как правило выглядит "разряжённым", зачастую с обилием восклицательных знаков, а перед декриптом есть уйма свободного места:
в) в самом конце загрузчика располагается фонт (шрифт), который можно легко распознать визуально, т.к. он имеет характерный "рисунок" кода в виде столбиков. Сразу после фонта могут идти (не всегда) строки текста, содержащих версии компилятора и библиотек.