Сообщение от akela1979
Сложно поверить что кто то из форумчан знает как ими воспользоватся
|
Думаю кому-нибудь может пригодиться. Инструкции и файлы в шапке.
Ну для наглядности приведу рабочий пример применения этих ключей и тулз.
Сегодня как раз понадобилось расковырять KIRK-ключи эмулятора PSP, находящегося в прошивке PS3. Собсно по данной теме: https://www.pspx.ru/forum/showthread.php?t=103710
KIRK - это криптографический блок, который железно вшит на заводе в процессор, ещё на стадии производства процессора.
Извлечь его из процессора очень и очень сложно, поэтому проще забрать его программный образ, который лежит в песочнице PSP для PS3 и эмулирует команды процессора PSP для управления песочницей.
- Короче, сначала необходимо распаковать файл обновления прошивки. Я скачал прошивку 3.55 PS3UPDATE.PUP.
- Для декриптовки взял из шапки PS3-decrypt-tools-windows.rar и разархивировал.
Закинул туда файл прошивки PS3UPDATE.PUP и воспользовался инструкцией из шапки:
pup_unpack.exe
unpack pup files (get core_os_package.pkg, etc.)
Usage: pup_unpack {filename} {directory}
filename: your pup
directory: destination for pup contents
В коде всё расписано по порядку - Usage(использование): pup_unpack {filename} {directory}, где filename - это наш файл прошивки PS3UPDATE.PUP, а directory - это название папки, куда будет скидываться содержимое.
- В общем создаю текстовой документ и пишу туда команду @echo off - это для того, чтобы в консоли не показывался всякий мусор, типа путей и т.п.. Со следующей строки пишу команду: pup_unpack PS3UPDATE.PUP FW355 и на следующей строке пишу паузу pause, чтобы окно консоли не закрвалось, иначе не будет видно, что произошло и были ли ошибки. Потом расширение у текстовика *.txt меняем на *.bat, тем самым превратя наш текстовик в исполняемый батник. Получился такой вот простенький код:
@echo off
pup_unpack PS3UPDATE.PUP FW355
pause
- Итак, прошивка вся извлеклась в папку FW355. Там несколько мелких файлов текстовиков, но внимание привлекает большой архив TAR на 164 Mb. Разархивируем его, получаем огромную кучу файлов. Самые интересные из них - dev_flash_0XX.tar.aa.2010_11_27_051337 аж 22 архива TAR. Но первоначально это не просто архивы, а зашифрованные файлы SCE.
Ну а так как это файлы прошивки, то опять используем инструкцию из кода в шапке:
fwpkg.exe
decrypt pkgs (you extracted with pup_unpack)
Usage: fwpkg {mode} {input file} {output file}
Mode: - e: Encrypt PKG
- d: Decrypt PKG
input file: your crypted pkg
output file: decrypted output
- Создаём, как написано, такой батник:
@echo off
fwpkg d dev_flash_000.tar.aa.2010_11_27_051337 dev_flash_000.tar
pause
И декриптуем все файлы, меняя по очереди в батнике названия каждого файла от 000 до 022.
Таким образом получается 22 декриптованных архива dev_flash_000.tar - dev_flash_022.tar.
Архиватором разархивирую их все в одну папку dev_flash, например.
Там собирается в итоге 7 папок. Меня интересует папка "pspemu". Там лежат 2 маленьких файла psp_emulator.self и psp_translator.self и ещё 2 папки с файлами прошивки PSP.
- Ну для интереса декриптую эти 2 файла с интересными названиями. Для этого использую ещё одну инструкцию из шапки:
decrypt-self.exe
decrypts self files
Usage: decrypt-self {self file} {elf file} {key file} {fix}
self file: file you want to decrypt
elf file: your output file
key file: use one of the included (e.g. "315.appkey")
all x**.appkey files are unknown fw numbers
find out on your own :)
fix: 0 (zero)
Делаю сразу один батник на декриптовку обоих файлов:
@echo off
decrypt-self psp_emulator.self psp_emulator.elf 355.appkey 0
decrypt-self psp_translator.self psp_translator.elf 355.appkey 0
pause
- И, как видно из инструкции, тут как раз потребуется ключ для этой прошивки и для этого вида файлов.
Поэтому беру ключ из спойлера KEYS и сохраняю его как 355.appkey:
[appldr]
type=SELF
revision=000A
version=0003005500000000
self_type=APP
erk=29805302E7C92F204009161CA93F776A072141A8C46A108E571C46D473A176A3
riv=5D1FAB844107676ABCDFC25EAEBCB633
pub=09301B6436C85B53CB1585300A3F1AF9FB14DB7C30088C4642AD66D5C148B8995BB1A698A8C71827
priv=0010818ED8A666051C6198662C3D6DDE2CA4901DDC
ctype=25
Создаю файл под названием 355.appkey и вставляю туда ключи в чистом виде: erk (32 байта) и следом же riv (16 байт).
Другие ключи pub и priv не нужны. Ничего изобретать не надо, всё строго по ключевой инструкции:
key files:
first 32 bytes: erk
last 16 bytes: riv
Ну и декриптую батником эти 2 файла.
Собсно, как и ожидалось, ничего интересного в этих маленьких файлах не нашлось.
- Внимательно осматриваю файлы в папках. Заинтересовали парочка файлов в папке \dev_flash\pspemu\release.
Это файлы emulator_api.sprx и emulator_drm.sprx. Ну для декриптовки этих SCE-заголовочных файлов я пошёл другим путём.
Скачал ещё другую тулзу PS3 Tools Collection 2.3.8. Программа устанавливает в папку "Документы" всю свою многочисленную коллекцию тулзов с единым GUI.
Там я зашёл во вкладку "Bruteforce Tools => Scetool GUI", просто выбрал файлы emulator_api.sprx и emulator_drm.sprx, и декриптовал легко и просто.
Внутри декриптованного файла emulator_drm.sprx обнаружился ещё один файл iso_spu_handler.sprx, который я извлёк вручную и снова так же декриптовал.
- Собсно нашёл то, что искал -> эмулятор KIRK-a процессора PSP (следующий пост).
Последний раз редактировалось ErikPshat; 13.03.2014 в 15:51.
|