Основан на исходных кодах PSARDumper.
Перекомпилено и оптимизовано мной.
Декриптует большинство загрузчиков от игр и prx-файлов.
Добавлено много ключей, многие благодаря ErikPshat. Умеет патчить под M33.
Функционал приближен к PRX Decryptor 2.3 by jas0nuk.
Умеет декриптовать файлы, объемом до 25M байт (Такие игры как Brainpipe).
Как использовать
================
1. Скопируйте папку EDecrypt в ms0:/PSP/GAME
2. Скопируйте закриптованные файлы в ms0:/enc/
3. Запустите EDecrypt v1.4.1 на PSP
4. Нажмите чтобы декриптовать файлы, - чтобы декриптовать и пропатчить под м33, - чтобы выйти из хоумбрю
5. Скопируйте полученные файлы из ms0:/enc/done/ куда хотите.
История версий
==============
1.4.1
- добавлен ключ для тега 0хD91614F0 (Спасибо hrimfaxi за ключ)
- добавлена новая сигнатура для пропатчивания
1.4.0
- добавлен ключ для тега 0хD91613F0 (Спасибо hrimfaxi за ключ).
1.3.2*
- при неудачном выделении выходного буфера, EDecrypt пытается использовать небезопасный метод.
-- Это может привести к непредсказуемым ошибкам, но это лучше, чем ничего
--- Тестировалось на Фат и Слим с EBOOT.BIN (12MB) на:
--- Minna_no_Shiatsu_-_Itami_mo_Tsukare_mo_Sukkiri_JPN_PSP-NRP
1.3.1*
- добавлены новые сигнатуры для пропатчивания
- добавлено пропатчивание незашифрованных ELF
- добавлена распаковка незакриптованных файлов
- расширенная поддержка памяти, как следствие возможность раскриптовки файлов объемом до ~25 MB
- небольшие исправления и багфиксы
1.3*
- добавлено много ключей
- добавлен ключ для тега 0хD91612F0
- пропатчивание под м33
- протоколирование в ms0:/enc/done/log.txt
- обработка множества файлов
1.2*
-добавлен ключ для тега 0хC0CB167C
-улучшена производительность и функционал
1.1*
- добавлены ключи от 6.0 FW
Todo лист
=========
1. Реорганизация исходников для избавления от pspdecrypt.prx
2. Криптование файлов
3. Возможно - пропатчивание проверки CFW
lex3a, да собсно вот что получается.
Пытался EBOOT.BIN декриптить от "James Cameron's Avatar - The Game.iso":
Вроде ключик правильно вставил, а при компиляции там одно предупреждение выползло, но скомпилировалось.
Так что думаю или ключик не правильный, или я что-то нахимичил.
Придёт mc707 и разложит всё по полочкам ))).
Я просто неправильно тебя понял сначала, думал ты просишь EBOOT.PBP сконверченный с новым ключём )))
Сам только-только игру нашел и скачал, чтобы проверить.
Адд: имплифик декларейшен при компиле оригинала тоже есть, но это фигня
Вот-вот. Только откуда эта ошибка? И как её вылечить? Типа неявное указание функции...
Хотя это даже не ошибка, а предупреждение. Так что можно закрыть глаза.
Скрин
По поводу кода 5D фиг знает. Смотрю у всех последних файлов он такой. А как его можно вычислить?
Хотя нет. Скрэмблер 5D правильный вероятно, иначе выскочила бы ошибка. Там эти ошибки комментируются.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 11.12.2009 в 11:31.
mc707 сделал декриптовку только на *.BIN. Нужно добавить код, чтобы ещё *.PRX проверялись. Ведь BIN и PRX - это фактически все они PRX-ы.
Как это лучше сделать?
P.S. ща отосплюсь, а потом разложу по полочкам. А вы пока кумекайте ))).
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 14.12.2009 в 17:37.
Эта информация была бы архиполезна, если бы это был верный ключ. А на самом деле скорее всего дезинформация. Я его проверил в тот же день, когда на максе его написали. Не могу сказать, по поводу правильности scramble-кода 0x5D, логично что должен использоваться он же. Хотя может ключ и верный, но без scramble-кода бесполезен. Можно попробовать подобрать его, но времени нет... И так мимо пробегал - увидел-ответил. Буду свободен минимум в вск.
Сообщение от ErikPshat
mc707 сделал декриптовку только на *.BIN. Нужно добавить код, чтобы ещё *.PRX проверялись. Ведь BIN и PRX - это фактически все они PRX-ы.
Как это лучше сделать?
В main/main.c есть строчка
// reading file
int ret = ReadFile("ms0:/EBOOT.BIN", 0, g_dataOut2);
Т.е. жестко прописано открывать EBOOT.BIN. Можете поменять на поиск всех файлов в какой-нибудь папке типа enc, как в prxdecrypter, это не очень сложно.
Да, и кстати...
Edecrypt выдает ошибку cbDecrypted < 0. Подправив вывод значения cbDecrypted на точное получил cbDecrypted = -8, т.е. ошибка происходит из-за неправильного вычисления sha-1 (это может произойти только при неправильном ключе или scramble-коде) на месте
Осталось написать брутер на 256 значений скрэмблера)))
Вот-вот, я тоже про это хотел сказать. Т.к. вполне возможно, что ключ правильный, раз его кто-то откуда-то вытащил и выложил.
То есть, нужен вариант, что бы вписать новый ключ, например этот key_620, и Скрамблер чтобы на него перебирался по очереди от 00 до FF.
Это конечно можно всё вручную перебрать, можно вообще 256 строк с одним и тем-же ключём воткнуть, только с пошаговыми значениями скрамблера )).
Как можно сделать, чтобы подставлялось по очереди значение, а после проверки каждого, цикл повторялся со следующим, а по достижения FF, чтобы программа продолжала выполнение далее?
В батнике на компе я это за 5 минут накалякаю, а вот в С++ я пока тяжело ориентируюсь.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 11.12.2009 в 00:39.
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,737
Вы сказали Спасибо: 819
Поблагодарили 3,838 раз(а) в 2,015 сообщениях
Сила репутации: 1
Репутация: 3838 
(репутация неоспорима)
ErikPshat,
1. Попытался найти место куда бы приткнуть цикл - не нашёл. За бутылкой не пошёл, ибо учеба изрядно пообкусала свободное время.
2. Как соберёшь табличку ключей/скрэмблов аттачни в архиве, можно запароленном. Мало ли чего...
В общем я уже тут как рыба в воде ))). Немного разобрался.
Мне кажется, что лучше кидать файлы не в корень, а в папку "enc", т.к. она уже существует у многих, кто часто что-то декриптует, а создавать дополнительно под другим именем - лишний бардак. Хотя Джейсон может заволноваться, что его папку используем, тогда в таком случае можно назвать к примеру "Decrypt" )))
Так думаю всё-таки наиболее практичнее и удобнее.
Правда логичнее ещё cOld переименовать в cNew там в двух местах или вообще от неё избавиться за ненадобностью ))).
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 11.12.2009 в 09:40.
Благодаря объяснениям mc707, дало толчёк повнимательнее взглянуть на код и разобраться во всех этих букавках и циферках.
Оказывается всё намного проще, чем я предполагал ))). Команды даже схожие с консольными. Так что в путь --->
Вот здесь у Джейсона стоит скрамблер 0x62:
{ 0x4C940AF0, keys330_3, 0x43 }
В общем вот уже точные данные...
Найдено ровно 56 тегов и ровно 54 ключа к ним.
Из них 40 тегов и 38 ключей уже имелось у mc707 и они все присутствуют у Дж. 2 тега ссылаются на одинаковые ключи.
Итого 16 ключей ещё в копилку.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 14.12.2009 в 17:47.
Я когда открываю любую тему и если мне пришло сообщение в ЛС, то у меня сразу открывается окно с сообщением об ЛС и предлагает открыть в новом окне. Не понимаю, вы заходите на форум и не замечаете сообщений. Выставьте настройки в профиле, как надо.
И потом, когда на форуме кто-то отписывается в теме, то я тут-же получаю нотификацию на комп, т.е. появляется внизу экрана бегущая строка с письмами. Как-же вы следите за темами, где отвечали или задавали вопросы.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram