PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   PrxEncrypter Mod v1.0.0.1 - Full Range Demo Game Sign (https://www.pspx.ru/forum/showthread.php?t=103580)

ErikPshat 08.05.2013 17:43

А нельзя ли создавать папку с названием модуля?
В позиции 0x40 указано смещение на начало модуля, пройдя по нему + 0x4 = Название модуля ))).



Отрепортил tpu по поводу ошибок: https://github.com/tpunix/kirk_engine/issues/1
Сегодня наконец он ответил :) обновляйте исходники до ревизии 2.
Ну у нас-то они давно исправлены.

frostegater 09.05.2013 02:58

ErikPshat, тогда вот код получения названия модуля..
Код:

        // get module name
        char mod_name[64];
        memset(mod_name, 0, sizeof(mod_name));
        u32 modname_addr = *(u32 *)(elf + 0x40) + 4;
        char *modname_p = elf+modname_addr;
        strncpy(mod_name, modname_p, 64);

создавать папку

Код:

#include <windows.h>
//...


CreateDirectory(mod_name,NULL);


ErikPshat 10.05.2013 02:12

В шапку добавил таблицы с сортировкой по размеру ELF и по размеру GZIP (kirk 0x70).
  1. Очень во многих демках не используется сжатие и это указано в позиции 0x6 => соотв. размер ELF = GZIP. Будет ли такой архив распаковываться?
  2. По каким параметрам выстраивать список: по размеру файла, по размеру ELF или по размеру GZIP?
  3. И каким образом - от большего к меньшему или от меньшего к большему?

frostegater 11.05.2013 02:58

ErikPshat, ты хочешь чтобы папка создавалась с названием модуля и что с ней делать? туда DATA.ENC? Просто EBOOT создается уже батом и он не может знать названия модуля.

ErikPshat 11.05.2013 04:21

frostegater, ну да, туда помещать сразу EBOOT.PBP.
А через системный вызов, как 7z, разве нельзя перемещать его в ту папку, которую создали, по тем же параметрам mod_name?

frostegater 13.05.2013 06:36

ErikPshat, да можно и нормально. Просто как-то не этично в prxencrypter пихать запаковку EBOOT. И придется дополнительные аргументы делать для ELF/EBOOT. Проще не делать совсем.

ErikPshat 13.05.2013 11:22

Вложений: 1
frostegater, ну да, я тоже подумал, что это будет лишняя морока, да и не нужно в принципе.

Кстати, в программе нет проверки на шифрованность файла.
Если я по запарке кидаю уже зашифрованный файл, то он его ещё раз шифрует :D и так можно до бесконечности.
Чтобы расшифровать 10 раз зашифрованный файл, приходится 10 раз его декриптовать :xDD:, чтобы получить наконец-то ELF.
Короче, не хватает проверки на ~PSP.

Кстати, сегодня всю ночь посвятил к подготовке финальной сборки. И вот собрал для теста (смотри вложение)
Просто потом в батнике что-то нахимичил, всё экспериментировал, поэтому исходники не подготовил.

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

frostegater 16.05.2013 16:41

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

Код:

        // "~PSP" header check
        if(memcmp(elf, "~PSP", 4) == 0)
        {
                printf("~PSP header detected, please decompress it.\n");
                return -1;
        }
        // ELF check
        else if(memcmp(elf, "\x7f\x45\x4c\x46", 4) != 0)
        {
                printf("Incorrect file\n");
                return -1;
        }
        else
        {
                printf("ELF detected\n");
        }


ErikPshat 16.05.2013 19:27

Цитата:

Сообщение от frostegater (Сообщение 1071988)
элементарно же

Ага, тебе элементарно, а я не знаю, с какой стороны скобочку поставить.
Ну нормалёк, теперь работает ))

Цитата:

Сообщение от frostegater (Сообщение 1071337)
Только не могу все лишние exe уложить в Utils. unpack-pbp не хочет работать с относительными путями.

Кстати, тут unpack-pbp с относительными путями как раз нормально подхватывается через батник.
А вот в коде программы не подхватывается 7z.exe через вызов system с относительными путями. Поэтому необходимо было держать 7z.exe в директории с батником. Но так не красиво, когда файлы россыпью рассыпаются кучей.
Я сделал выход таким образом, но что-то не так:
Код:

const char * const path = "/Utils";

 int Wmain () {
    if (chdir (path) == -1) {
        printf ("chdir failed - %s\n", strerror (errno));
    }else {
        system ("7z.exe a -tgzip temp.gz ! -mx=9 -mfb=128 -mpass=10");
    }
    return 0;
 }


Взято отсюда: http://www.ccplusplus.com/2012/01/ch...c-example.html

frostegater 17.05.2013 00:56

ErikPshat, какие ошибки?

ErikPshat 17.05.2013 14:08

Ладно, думаю всё остальное мелочи. Пора финализировать окончательную сборку...

Чейнжлог:
  • Добавлено 100 заголовков от демоверсий для подписи, к 3-ём ранее имеющимся. Итого 103 заголовка.
  • Добавлена проверка на ~PSP и ELF
  • Заменён механизм сжатия в GZIP библиотекой zlib на консольный 7-Zip.
  • Исправлен баг, когда файл всегда подписывался бОльшим заголовком, чем он сам, несмотря на используемое сжатие. То есть, даже если файл сжимался намного меньшим размером и свободно помещался в меньший заголовок, то заголовок всё равно брался бОльший, чем несжатый файл.
  • Автоматизирован процесс подписи.
Архив со сборкой в шапке темы, включая исходники в папке src.

ErikPshat 22.05.2013 06:02

Вложений: 1
PrxEncrypter Mod v1.0.0.1

Чейнжлог:
  • Устранена ошибка, когда в папке имелся свой PARAM.SFO, то всё равно генерился новый и подменялся исходный.
Кому интересно, полная сборка со всеми исходниками в шапке.



Да, по поводу вопросов - что из исходников не компилируется PrxEncrypter, то мне удалось локализовать, откуда происходит у меня компиляция.
Помимо Minumalist PSPSDK, требуются дополнительные библиотеки, что решается дополнительной установкой Strawberry Perl, т.к. в нём уже всё необходимое устанавливается автоматом, это библы OpenSSL и прочие Crypto, требуемые для компиляции Энкриптора.

Цитата:

It includes perl binaries, compiler (gcc) + related tools, all the external libraries (crypto, graphics, xml ...), all the bundled database clients and all you expect from Strawberry Perl.



Ах да, на всякий случай проверьте, действительно ли прописались пути к компиляторам в переменные среды системы.
Просто иногда бывает, что там записано слишком много значений и новые установки туда не помещаются из-за ограничения длины путей, поэтому попросту не прописываются.
В переменную Path должны быть прописаны пути ко всем установленным компиляторам и разделяются пути через ; (точку с запятой).
Например так:
  • C:\pspsdk\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl \bin;
Для этого зайдите в "Свойства системы => Переменные среды" и проверьте прописанные пути в параметре Path:

Вложение 9217

SILENT-Pavel 08.08.2013 16:44

ErikPshat, извиняюсь за возможный оффтоп, но есть прогресс подписи prx для улучшения совместимости psp -> ps3 или нет?

ErikPshat 08.10.2014 02:23

Цитата:

Сообщение от ErikPshat (Сообщение 1072265)
Да, по поводу вопросов - что из исходников не компилируется PrxEncrypter, то мне удалось локализовать, откуда происходит у меня компиляция.
Помимо Minumalist PSPSDK, требуются дополнительные библиотеки, что решается дополнительной установкой Strawberry Perl, т.к. в нём уже всё необходимое устанавливается автоматом, это библы OpenSSL и прочие Crypto, требуемые для компиляции Энкриптора.

Цитата:

It includes perl binaries, compiler (gcc) + related tools, all the external libraries (crypto, graphics, xml ...), all the bundled database clients and all you expect from Strawberry Perl.



Ах да, на всякий случай проверьте, действительно ли прописались пути к компиляторам в переменные среды системы.
Просто иногда бывает, что там записано слишком много значений и новые установки туда не помещаются из-за ограничения длины путей, поэтому попросту не прописываются.
В переменную Path должны быть прописаны пути ко всем установленным компиляторам и разделяются пути через ; (точку с запятой).
Например так:
  • C:\pspsdk\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl \bin;
Для этого зайдите в "Свойства системы => Переменные среды" и проверьте прописанные пути в параметре Path:

Вложение 9217

Забыл добавить, что строки C:\pspsdk\bin;C:\strawberry\c\bin; должны стоять на первом месте. Сегодня заново установил Perl Strauberry и компиляция не прокатила. Проверил в "Переменных средах", оказалось, что его строка записалась в конец, поэтому компиляцию перехватывал другой компилятор, вроде Cygwin. Переместил строку вперёд и всё пошло успешно.

ErikPshat 08.10.2014 02:29

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1076273)
но есть прогресс подписи prx для улучшения совместимости psp -> ps3 или нет?

Не совсем понял, но есть возможность переподписывания любых файлов PRX их же родными заголовками.

Для этого нужно только:
  1. Убрать все 103 заголовка из исходников этой темы - main.c
  2. Вставить туда заголовок pspHeader оригинала подписываемого файла
  3. Вставить туда заголовок kirkHeader оригинала подписываемого файла
  4. Заново скомпилировать утилиту
  5. Подписать декриптованный/изменённый PRX его же родным заголовком.
Примечание: pspHeader и kirkHeader достаются точно так же, как я их выкладывал в спойлерах "Headers" каждого сообщения в данной подготовительной теме: https://www.pspx.ru/forum/showthread.php?t=103063

Насчёт совместимости с PS3, наверное в самой PS3 не хватает каких-то функций.

ErikPshat 24.12.2014 17:16

То ли лыжи не оттуда поехали, то ли кто-то подменил архив в шапке, но в шапке был выложен не тот архив "PrxEncrypter Mod".
Там лежал архив для подписи апдейтера (обновления прошивки из папки UPDATE), т.е. подписывал хомку не заголовками от 103 демоигр, а именно заголовком "updater" от обновления прошивки с тегом 0000000B.

Залил правильный архив... Странно, что куча народу скачало и никто не заметил :D

evgenii-dp 29.09.2021 21:26

После подписи, идёт запуск, потом экран гаснет и вылетает в меню с "запуск игры невозможен (80020001).
Что не так вышло?
https://drive.google.com/file/d/1qP0...ew?usp=sharing
Нажмите для увеличения

Нажмите для увеличения

ErikPshat 30.09.2021 09:39

Цитата:

Сообщение от evgenii-dp (Сообщение 1243837)
После подписи, идёт запуск, потом экран гаснет и вылетает в меню с "запуск игры невозможен (80020001).

Ну ты же видишь там ошибку выдаёт - Error. 7z.exe что-то там.
Прога делалась давно, в Винде что-то поменялось, поэтому тот 7z видимо не работает.
  1. Скачай и установи свежую версию для своей битности системы: :download: 7-Zip
  2. Затем, как запустишь прогу PrxEncrypter Mod, она извлечёт в ту же папку ресурсы.
  3. Сходи в папку C:\Program Files\7-Zip, скопируй там свежеустановленный 7z.exe и замени им такой же в папке Энкриптера.
  4. Потом в чёрном запущенном окне консоли жми Enter для переподписывания чего ты туда положил.

Только имей в виду, если с игрой или программой присутствует файл PRX, тогда такая прога на OFW не запустится. Там для PRX нужны особые права. Вот например как в проге PSPRadio



Цитата:

Сообщение от evgenii-dp (Сообщение 1243837)

И как тебе пришло в голову вставить в код для картинок [RESIZE] ссылки не на кртинки, а ссылки на страницы сайта? :D
С головой дружишь немного? Картинки имеют на конце, после точки, расширения *.png, *.jpg, *.bmp. А у тебя что за расширения в ссылках?
Пользуйся хостингами картинок без рекламы, типа https://imageban.ru/
Там тебе дадут прямую ссылку, например так:
https://i4.imageban.ru/out/2021/09/30/20be0a1cc247a6e64e60bc4930cc37ee.png
Вот эту ссылку на картинку с расширением на конце *.png и нужно вставлять в тег для картинок вот так:
Нажмите для увеличения


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

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