PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   EDecrypt v1.4 (https://www.pspx.ru/forum/showthread.php?t=85185)

ErikPshat 10.12.2009 08:04

lex3a, да собсно вот что получается.
Пытался EBOOT.BIN декриптить от "James Cameron's Avatar - The Game.iso":

http://i028.radikal.ru/0912/24/a9e0761a95a5.png

Вроде ключик правильно вставил, а при компиляции там одно предупреждение выползло, но скомпилировалось.
Так что думаю или ключик не правильный, или я что-то нахимичил.
Придёт mc707 и разложит всё по полочкам ))).

Я просто неправильно тебя понял сначала, думал ты просишь EBOOT.PBP сконверченный с новым ключём )))
Сам только-только игру нашел и скачал, чтобы проверить.

А EBOOT.BIN вот, бери: http://slil.ru/28321591

Yoti 10.12.2009 10:05

ErikPshat,
архивируй, млин. Я бы проверил...

ErikPshat 10.12.2009 10:10

Держи в зипе EBOOT.BIN: http://slil.ru/28321811

Yoti 10.12.2009 10:36

Адд: имплифик декларейшен при компиле оригинала тоже есть, но это фигня

Yoti добавил 10-12-2009 в 10:36
Адд: что-то в архиве он меньше не стал... Ну его нафиг!
ErikPshat,
ты уверен, что code for scramble именно 0x5d?

ErikPshat 10.12.2009 10:40

Цитата:

Сообщение от Yoti (Сообщение 850329)
Адд: имплифик декларейшен при компиле оригинала тоже есть, но это фигня

Вот-вот. Только откуда эта ошибка? И как её вылечить? Типа неявное указание функции...
Хотя это даже не ошибка, а предупреждение. Так что можно закрыть глаза.

По поводу кода 5D фиг знает. Смотрю у всех последних файлов он такой. А как его можно вычислить?

Хотя нет. Скрэмблер 5D правильный вероятно, иначе выскочила бы ошибка. Там эти ошибки комментируются.

ErikPshat 10.12.2009 14:53

mc707 сделал декриптовку только на *.BIN. Нужно добавить код, чтобы ещё *.PRX проверялись. Ведь BIN и PRX - это фактически все они PRX-ы.
Как это лучше сделать?

P.S. ща отосплюсь, а потом разложу по полочкам. А вы пока кумекайте ))).

dimok135 10.12.2009 18:36

ErikPshat, Если расшифруешь EBOOT.BIN и PRX от James Cameron's Avatar, выкладывай всё пожалуйста.

mc707 10.12.2009 20:57

Цитата:

Сообщение от blueheaven (Сообщение 850257)
Полезно ли это?
u32 tag_620 = 0xD91612F0; u8 keys_620[16] = { 0xE5, 0x89, 0xEE, 0x58, 0x5E, 0x30, 0xB5, 0xF3, 0x82, 0xA5, 0xD2, 0x9A, 0xD8, 0x6C, 0x0A, 0x71 };

Эта информация была бы архиполезна, если бы это был верный ключ. А на самом деле скорее всего дезинформация. Я его проверил в тот же день, когда на максе его написали. Не могу сказать, по поводу правильности scramble-кода 0x5D, логично что должен использоваться он же. Хотя может ключ и верный, но без scramble-кода бесполезен. Можно попробовать подобрать его, но времени нет... И так мимо пробегал - увидел-ответил. Буду свободен минимум в вск.

Цитата:

Сообщение от ErikPshat (Сообщение 850393)
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-коде) на месте
Код:

/* sha-1 */
if (sceUtilsBufferCopyWithRange(outbuf, 3000000, outbuf, 3000000, 0x0B) != 0)
...


Yoti 10.12.2009 23:42

%src%/main/main.c
Код:

293: printf("Decrypt FAILED! cbDecrypted < 0.\n");
-меняем на-
293: printf("Decrypt FAILED! cbDecrypted %i.\n",cbDecrypted);

Компилиццо норм, проверять лень)

Yoti добавил 10-12-2009 в 23:38
ErikPshat,
наплюнь на имплификт, у меня в ЧИ тоже такая фигня при вызове main() :-D

Yoti добавил 10-12-2009 в 23:42
Осталось написать брутер на 256 значений скрэмблера)))

ErikPshat 11.12.2009 00:32

Цитата:

Сообщение от Yoti (Сообщение 850587)
Осталось написать брутер на 256 значений скрэмблера)))

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

То есть, нужен вариант, что бы вписать новый ключ, например этот key_620, и Скрамблер чтобы на него перебирался по очереди от 00 до FF.

Это конечно можно всё вручную перебрать, можно вообще 256 строк с одним и тем-же ключём воткнуть, только с пошаговыми значениями скрамблера )).

Как можно сделать, чтобы подставлялось по очереди значение, а после проверки каждого, цикл повторялся со следующим, а по достижения FF, чтобы программа продолжала выполнение далее?

В батнике на компе я это за 5 минут накалякаю, а вот в С++ я пока тяжело ориентируюсь.

ErikPshat 11.12.2009 00:41

Переместил тему в наш раздел по прямому назначению, ибо в общем разделе нет смысла светить наше обсуждение.

Давайте ребятки, какие ещё будут исправления, дополнения.
К приходу mc707 надеюсь полный список будет готов, хотя он и сам наверное уже всё нашел ))).

Не знаю, стоит ли в общий доступ всё выкладывать...

Acid_Jack 11.12.2009 01:17

Цитата:

Сообщение от ErikPshat (Сообщение 850604)
Не знаю, стоит ли в общий доступ всё выкладывать...

простым смертным исходники вроде как и не нужны
нас бы вполне устроила новая версия декриптера

Yoti 11.12.2009 03:02

ErikPshat,
1. Попытался найти место куда бы приткнуть цикл - не нашёл. За бутылкой не пошёл, ибо учеба изрядно пообкусала свободное время.
2. Как соберёшь табличку ключей/скрэмблов аттачни в архиве, можно запароленном. Мало ли чего...

ErikPshat 11.12.2009 08:49

mc707, спасибо! Приблизительно это и ожидал.

В общем я уже тут как рыба в воде ))). Немного разобрался.
Мне кажется, что лучше кидать файлы не в корень, а в папку "enc", т.к. она уже существует у многих, кто часто что-то декриптует, а создавать дополнительно под другим именем - лишний бардак. Хотя Джейсон может заволноваться, что его папку используем, тогда в таком случае можно назвать к примеру "Decrypt" )))

Заменил этои связанные коды:
Код:

int mode=0, s;
        char cNew[16] = "ms0:/EBOOT.BAK";
        char cOld[16] = "ms0:/EBOOT.BIN";
        u32 tag;

Код:

// renaming old file
if(sceIoRename(cOld, cNew) < 0)
{
ErrorExit(5000, "Unset read-only attribute from file %s.\n", cOld);
}

// saving file
if (WriteFile(cOld, pbToSave, cbToSave) != cbToSave)

На несколько другие:
  1. Отказался от функции переименования.
  2. А отсюда от лишней строки в init: char cNew[16] = "ms0:/EBOOT.BAK";
Сделал так:
Код:

int mode=0, s;
        char cOld[23] = "ms0:/enc/DONE/EBOOT.BIN";
        u32 tag;

Код:

// creating directories
sceIoMkdir("ms0:/enc/DONE", 0777);

// saving file
if (WriteFile("ms0:/enc/DONE/EBOOT.BIN", pbToSave, cbToSave) != cbToSave)

Так думаю всё-таки наиболее практичнее и удобнее.
Правда логичнее ещё cOld переименовать в cNew там в двух местах или вообще от неё избавиться за ненадобностью ))).

Coby 11.12.2009 12:23

в Теккене же вроде тоже тэг 0xD91612F0? как же его декриптовали тогда?

maggot666x 11.12.2009 12:50

Цитата:

Сообщение от Coby (Сообщение 850655)
в Теккене же вроде тоже тэг 0xD91612F0? как же его декриптовали тогда?

prxdecriptor 2.3 легко справился с теккеном

lex3a 11.12.2009 15:53

Цитата:

Сообщение от Coby (Сообщение 850655)
в Теккене же вроде тоже тэг 0xD91612F0? как же его декриптовали тогда?

Просто их две версии. Одна из PSN, другая просто "leaked" .

ErikPshat 12.12.2009 00:19

Благодаря объяснениям mc707, дало толчёк повнимательнее взглянуть на код и разобраться во всех этих букавках и циферках.
Оказывается всё намного проще, чем я предполагал ))). Команды даже схожие с консольными. Так что в путь --->

Вот здесь у Джейсона стоит скрамблер 0x62:
Код:

{ 0x4C940AF0, keys330_3, 0x43 }
В общем вот уже точные данные...
  1. Найдено ровно 56 тегов и ровно 54 ключа к ним.
  2. Из них 40 тегов и 38 ключей уже имелось у mc707 и они все присутствуют у Дж. 2 тега ссылаются на одинаковые ключи.
  3. Итого 16 ключей ещё в копилку.

ErikPshat 12.12.2009 13:16

Yoti,
mc707,
Вы личку что-ли не проверяете?

Я когда открываю любую тему и если мне пришло сообщение в ЛС, то у меня сразу открывается окно с сообщением об ЛС и предлагает открыть в новом окне. Не понимаю, вы заходите на форум и не замечаете сообщений. Выставьте настройки в профиле, как надо.

И потом, когда на форуме кто-то отписывается в теме, то я тут-же получаю нотификацию на комп, т.е. появляется внизу экрана бегущая строка с письмами. Как-же вы следите за темами, где отвечали или задавали вопросы.

z4r4 12.12.2009 16:19

ErikPshat, ты можеш вставвить ключи в декриптор и сюда выложить?


Текущее время: 07:37. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.