Жалко внутреннюю библиотеку не удалось внедрить, а всё-таки внешний 7z. Ну да ладно, хоть избавил ты нас от ручного добивания нулями ELF-а.
Сообщение от frostegater
Сравниваем размер архива с оффсетом 0xB0 в pspHeader. На сколько я понимаю, этот размер включает ~PSP хедер.
|
Ну да, ведь psp_header включает 0x150 байт. А смещение 0xB0 дублируется в kirk_header в смещении 0x70. Так что тут всё верно.
В общем такой эксперимент.
Оригинальная упаковка:- Беру оригинальный Astonishia = 368544 байта
- Декриптую без расжатия - получаю архив GZ (1F8B0800) = 368196 байта
- Расжимаю в ELF = 978952 байта
Кастомная упаковка:- Беру подписанный Astonishia = 368544 байта
- Декриптую без расжатия - получаю архив GZ (1F8B0808) = 368196 байта - внутри архива палится название temp.uncompressed

По размеру декриптованного файла 0хEF008 нахожу настоящий конец архива = 366578 байта настоящий архив.
- Расжимаю в ELF = 978952 байта
Ну сжался получается прямо почти копейка в копейку. На 1618 байта меньше оригинального сжатия.
Astonishia запускается и работает замечательно!
Беру свой любимый Cube Sample = 52988 байта
Кастомная упаковка:- Подписанный Cube Sample = 368544 байта - всё верно, подписался заголовком Astonishia.
- Декриптую без расжатия - получаю архив GZ (1F8B0808) = 368196 байта - внутри архива палится название temp.uncompressed

По размеру декриптованного файла 0хEF008 нахожу настоящий конец архива = 19030 байта настоящий архив, в конце забитый только нулями, а не как было раньше - забитый остатками ELF-файла.
- Расжимаю в ELF = 978952 байта, конец забит нулями очень много )))
В общем всё чётко, всё работает как надо.
Последний раз редактировалось ErikPshat; 08.05.2013 в 19:41.
|