Сообщение от hasherfrog
Всё дело в том, что если в ~PSP файл ELF хранится в gzip, то после распаковки его размер должен стать больше.
|
Не совсем так. В Gzip упаковывались файлы прошивки PRX (~PSP) совсем давно в формат RLZ. Но так как PSP по сей день умеет работать с этим архивом, то разработчики Homebrew как раз этим форматом пользуются. А так же в этот формат упаковывал свои кастомные файлы и Dark_Alex, как и все последующие последователи.
Но официальные файлы Sony сейчас похоже не пакует, а просто переконверчивает их другим способом - KL3E, KL4E. По сути это не компрессия, а просто перекодировка в другой формат с шифровкой.
Поэтому зашифрованный файл имеет размер больше, чем декриптованный, т.к. зашифрованный имеет ещё и свой заголовок + модуль шифровальщика. После декриптовки файл выходит даже меньше или равным зашифрованному.
Размер файла в ~PSP проставляется так же на старых позициях в 4-ёх байтах:
0x28 - размер декриптованного файла ELF
0x2C - размер зашифрованного файла ~PSP
0хB0 - размер декриптованного файла EBOOT.BIN в играх, дополнительно к 0x28