~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Делаем цветной шрифт в прошивках 3.52 М33
Как известно, за цвет шрифов в меню XMB отвечает файл 
VSHMAIN.PRX, с которым нам и предстоит работать в данной статье.
Наша работа будет производится в 3 этапа:
I) Декриптовка
II) Кастомизация
III) Запаковка с новой криптовкой.
Предисловие (основные понятия)
Как известно, корпорация Sony в файлах прошивок до 2.6 вообще не применяла никакого компрессионного механизма.
Затем, начиная с прошивки 2.7, стал применяться механизм сжатия 
ZLIB, который с лёгкостью распаковывался и запаковывался.
Но, начиная с версии прошивки 3.10, Sony изменила механизм компрессии и назвала его - 
RLZ.
С этого момента в процессе кастомизации появились некоторые затруднения. Если распаковывать такие файлы прошивки удавалось, то обратно запаковать никак не получалось, поэтому приходилось назад запаковывать в старый формат 
ZLIB или вообще не запаковывать, что приводило к значительному увеличению объёма файла.
Что же за такой хитрый формат 
RLZ ?
Оказалось всё достаточно просто.
Файлы этого формата состоят из двух частей - 
Заголовка - ~PSP и собственно самого 
Исполняемого Кода.
1. Заголовoк - ~PSP - это та часть кода, которая содержит технические данные о файле и метод защиты (проверка целостности данных).
Находится в начале файла 
от 0х0 до 0х14F включительно в 16-ричной системе исчисления и содержит ровно 150 Байт
2. Исполняемый Код - ELF - это самый секрет фирмы.
Находится после Заголовка, начиная 
от 0х150 включительно и до конца файла.
Как оказалось - это попросту самодостаточный архив 
GZIP, главная особенность которого - возможность работать с непрерывным потоком данных, упаковывая/распаковывая их «на лету». Такой архив легко можно распаковать и запаковать любым современным архиватором WinRar, 7Zip, ZIP и пр.
Архивный файл 
GZIP должен иметь расширение 
.gz на конце после точки.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I. Декриптовка
Декриптовка - это самый лёгкий и быстрый этап.
Для примера я взял файл 
VSHMAIN.PRX из своей прошивки 
3.52 M33-4, который лежит в папке: 
flash0:\vsh\nodule\vshmain.prx
После установки 
HEX Workshop, у вас появиться в контекстном меню при клике правой кнопкой мыши на файле - пункт "
Hex Edit with Hex Workshop".
Нажмите правой кнопкой на файле 
VSHMAIN.PRX, предварительно скопированном  из прошивки на компьютер, и выберите в открывшемся контекстном меню этот пункт.
Этот файл откроется в Хекс-редакторе.
По умолчанию в редакторе стоит способ отображения кода в двухбитном режиме, то есть по четыре знака в каждом столбце (по 2 бита). Нам же в данном случае, для удобства лучше будет созерцать код файла в однобитном представлении, так как в дальнейшем нам придётся оперировать 3-хбайтными и 4-хбайтными числами.
Для представления в однобайтном формате, сделайте следующее:
зайдите в меню "
Options->Preferences" и на первой вкладке "
Layout" в графе "
Columns", выберите 
Group by: 1 (byte) и нажмите кнопку "
Применить" и "
ОК", как показано на рисунке ниже.
Теперь мы видим числа побитово, то есть попарно по два числа. Один байт - это двухзначное число в 16-ричной системе исчисления от 00 до FF.
Возьмите мышкой вертикальную полосу прокрутки справа и покрутите файл вниз и вверх. Обратите внимание на заголовок в начале файла 
~PSP в правой части окна программы, о котором я говорил в 
Предисловии в пункте 
1. Так же вы увидите в правом вертикальном столбце, на всём протяжении файла - Абракадабру. Основные приготовления мы сделали, а теперь поехали.
1) Выделите, протянув мышкой, весь небольшой код Заголовка от 0х0 до 0х14F включительно, или до 0х150 не включительно.
Числа 
0х0 и 
0х150 - это не что иное, как 
00000000 и 
00000150 в левом вертикальном столбце отсчёта, просто записываются для удобства без лишних нулей спереди. Эти числа так же отображаются в нижней строке окна программы под названием "
Offset: XXXXXXXX" при установленном курсоре на определённой позиции.
Теперь нам нужно только удалить выделенный 
Заголовoк - ~PSP - от 0х0 до 0х14F включительно, чтоб у нас остался только 
Исполняемый Код - ELF, который начинается сразу после Заголовка - от 0х150 включительно и до конца файла. Как я говорил ранее в Предисловии - это и есть архив 
GZIP, который впоследствии нам останется распаковать (декриптовать, так сказать 

).
Обратите внимание на области, выделенные красными прямоугольниками:
а) Область 
EF - это 
0х14F. Её мы тоже захватываем.
б) Область 
00000150 - её мы уже не трогаем, это начало заархивированного GZIP-файла и это число указывает на порядковый номер первого Байта в этой строке - 
1F.
Следующий байт 
8B будет иметь порядковый номер (offset) - 
00000151 и так далее. Короче расклад понятен?
в) Область 
Sel: 0x150 bytes - указывает на количество выделенных Байт. 
Sel от слова Select - Выбор.
2) После того, как мы выделили нужную область - 
Заголовoк - ~PSP, нужно от неё избавиться, чтоб у нас остался только архивный GZIP-файл.
Нажмите на клавиатуре кнопку "
DELETE" (Del), чтобы удалить выделенную область.
Ну вот, от Заголовка мы избавились. У нас остался чистый 
Исполняемый Код - ELF, упакованный в формат 
GZIP.
3) Теперь нужно его сохранить.
Выбираем в меню "
File->Save As..." и в открывшемся окне сохранения, дописываем в конец названия файла расширение 
.gz
Cохраняем его с получившимся названием 
vshmain.prx.gz
4) Теперь откройте получившийся архивный файл 
vshmain.prx.gz любым архиватором, лучше воспользуйтесь его ближайший родствеником - 
7Zip.
Извлеките, находящийся в архиве файл 
vshmain.prx, только желательно под другим названием, чтобы не перепутать потом с оригиналом или не перезаписать случайно оригинальный файл вашей прошивки.
Назовите его лучше так: 
vshmain_elf.prx. Почему именно 
ELF, о котором я упоминал так же в самом начале, вы узнаете, если посмотрите на рисунок ниже.
Откройте ваш разархивированный (декриптованный) файл 
vshmain_elf.prx в Хекс-редакторе и посмотрите на начало кода в правом вертикальном столбце и вы увидите, что заголовок декриптованного файла начинается со слова 
ELF. Прокрутите файл вниз и понаблюдайте за правым столбцом и вы увидите, что там теперь вместо прежней Абракадабры появились вполне внятные и читабельные слова и всякие пути и расширения. Это говорит нам о том, что мы всё сделали правильно. 
На этом процедура декриптовки у нас закончилась. Мы получили декриптованный файл, который теперь можно редактировать.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
II. Кастомизация - Изменяем цвет шрифта по месяцам
Продолжение следует...
https://www.pspx.ru/forum/showthread.php?t=76183