Декриптовка - Русификация - Запаковка
Вложений: 33
Декриптуем, русифицируем и обратно пакуем на примере RECOVERY.PRX Решил довести начатое почти год назад и не доведённое до конца дело: https://www.pspx.ru/forum/showthread.php?t=59657 Данным методом, о котором пойдёт речь ниже, запакованы все кастомные файлы кастомной прошивки:
После успешного усвоения данного урока, у вас на декриптовку будут уходить считанные секунды... Итак, начнём! Наша работа будет производится в 3 этапа:
Предисловие (основные понятия) Данные файлы состоят из двух частей - Заголовка ~PSP и собственно самого Исполняемого Кода ELF.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I. Декриптовка Декриптовка - это самый лёгкий и быстрый этап. Для примера я взял файл recovery.prx из flash0 своей прошивки, который лежит в папке: flash0:/vsh/module/... Вам понадобится Хекс-редактор, после установки которого, у вас появиться в контекстном меню при клике правой кнопкой мыши на файле - пункт "Hex Edit with Hex Workshop".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ II. РУСИФИКАЦИЯ В общем, декриптовка определённого файла подразумевает последующую его кастомизацию, в данном случае русификацию, иначе для чего же его декриптовать. Тут я подумал, зачем же я взял для примера этот recovery.prx? И..., надумал встроить в него поддержку русских символов. Как вам известно, в рекавери-меню нет поддержки кириллицы и если вы положите файл с переводом ru_recovery.txt в папку "seplugins" или в корень flash1, то в рекавери-меню вместо русских букв появятся крякозяблики. Предисловие Буквы, как известно, нарисованы на квадратике - 16 символов в ширину и 16 рядов в высоту, итого 16х16=256 символов, что соответствует максимальной величине FF в шестнадцатеричной системе. Каждый квадратик с символом (буквой), в свою очередь, состоит из 64-х пикселей по 1 биту. То есть, каждый символ составляет ровно 8 байт, исходя из того, что 1 байт = 8 бит. Так вот, из этой картинки и берутся буквы, цифры и прочие символы, которые мы видим на экране PSP в виде упорядоченного текста. В рекавери-меню от Dark_Alex, нет русского алфавита и выглядит его таблица символов так: А если учесть, что русская кодировка символов находится в диапазоне C0 - FF, как раз в том месте, где находятся всякие ненужные треугольники, кирпичики и гиперборейские символы, то в результате мы имеем в распоряжении полноценный англо-русский алфавит: Причём все символы из таблицы в Хексе будут иметь код именно такой, если вы возьмёте значения, которые я пронумеровал слева и сверху.Как-же выглядит этот алфавит в Хекс-редакторе и как его отыскать там?
Таблица символов в Хексе Эта библиотека находится здесь: c:\pspsdk\psp\sdk\lib\libpspdebug.a Итак, приступим к русификации! 1. Если вы так и не поняли, из написанного выше, как самому вручную извлечь и вставить свою матрицу шрифтов, то воспользуйтесь программкой, написанной Andy_maN, которая содержит в себе бинарник картинки с англо-русскими символами: Вложение 14780. 2. Запустите файл "PatcheR.1.0b.exe" 3. В первой строке "Что будем патчить:", нажмите на квадратик справа и в открывшемся проводнике укажите ваш декриптованный файл recovery.prx: Скрин Скрин 6. Всё, ваш recovery.prx русифицирован! Такой, декриптованный пока ещё, файл можно положить на место во flash0:/vsh/module/... и он будет прекрасно работать. Не забудьте только положить текстовой документ с переводом ru_recovery.txt в папку "seplugins" или в корень "flash1". 7. Наслаждайтесь русским рекавери-меню! Но, заметьте, ваш декриптованный файл теперь весит 61,3 Кб (62814 байта), а изначальный исходник весил 25,1 Кб (25784 байта) - это почти в два с половиной раза больше места занимает во flash0. Чтобы исправить ситуацию, лучше его обратно упаковать и закриптовать. Поэтому переходим к третьему пункту: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ III) Запаковка с новой криптовкой. Запаковать обратно вручную так же просто как и распаковать. Наш декриптованный и русифицированный файл recovery.prx теперь нужно обратно заархивировать в GZIP-архив с нормальной степенью сжатия. Если сильно сжать, то потом просто может немного притормаживать, а так на работоспособность степень сжатия никак больше не влияет. Для этого воспользуйтесь архиватором 7-Zip. WinRar, к сожалению, не умеет архивировать в GZIP, только разархивировать. 1. Предварительно, прежде чем архивировать, его можно переименовать как заблагорассудится, даже без расширения. Я, например, его переименовал так: Andy_maN_lupus_ErikPshat_PSPx.Ru - в честь разработчиков русификатора, ну и себя любимого :-), а так же нашего сайта. Для чего? Узнаете далее... 2. Запаковываем в GZIP наш кастомизированный файл recovery.prx ака Andy_maN_lupus_ErikPshat_PSPx.Ru. 3. Нажмите правой кнопкой мыши на создавшемся архиве Andy_maN_lupus_ErikPshat_PSPx.Ru.gz и выберите в раскрывшемся контекстном меню пункт: "Hex Edit with Hex Workshop v6.8". Скрин Скрин 6. Нажмите в верхнем меню "File -> Open..." Скрин Скрин Обратите внимание, что код в этой позиции начинается с 1F8B - это волшебная метка начала Gzip-архива. Скрин Скрин Скрин Скрин Теперь дело осталось за малым - сгенерировать и проставить секретные криптографические метки :-) 12. Cразу открою секрет этих меток... A) В offset: [0x28,0x29,0x2A,0x2B] - указывается размер декриптованного ELF-файла задом наперёд (нули спереди отбрасываются при указании смещений).13. Давайте проставим эти метки... A) Итак, в offset: [0x28,0x29,0x2A,0x2B] - указывается размер декриптованного ELF-файла задом наперёд.На этом вся криптовка заканчивается. 14. Жмем "File -> Save As..." и сохраняем как recovery.prx в любую свободную папку. 15. Подключаем PSP к компьютеру и кидаем файл во flash0:/vsh/module/... Создаём на компьютере пустой текстовой документ под названием ru_recovery.txt, копируем в него код из спойлера ниже, сохраняем и закидываем в корень flash1 или в папку seplugins. Перевод рекавери У меня на распаковку уходит не более 10 сек, а на запаковку - не более 30 сек. Цитата:
Скрин |
ErikPshat, спасибо за подробную информацию. низкий тебе поклон
|
Спасибо, Эрик! Отлично написал! Впрочем, не впервой) Оффтоп: как перевести файлы тем prx для новой проши?
|
ErikPshat, спасибо за такой полезный мануал.
|
ErikPshat, а через что ты такой шрифт получил?)
http://i008.radikal.ru/0904/f5/c9c6b4a83e94.png |
Dr.House, ну это через Ромартист. Я снял скрин и добавил слева и сверху нумерацию. Там же можно размер отображения матрицы менять от 1:1 до 4:1.
А до этого, были сделаны старые скрины в фотошопе. Фотошоп тоже умеет отображать эту матрицу шрифтов, т.к. это же фактически картинка в RAW формате. Но скрины получились там не очень красивыми. А вот RomArtist их чётко показывает. |
Цитата:
|
Цитата:
Видишь, первый квадратик - пустой. Это и есть первые 8 нулевых байт (00 00 00 00 00 00 00 00) таблицы Debug-шрифта. Теперь посмотри на следующий квадратик - там нарисован смайлик. Это и есть следующие 8 байт, который в хексе записывается так: 3C 42 A5 81 A5 99 42 3C. Поэтому, чтобы найти начало таблицы шрифтов, то достаточно ввести в поиск 3C 42 A5 81, что безошибочно приведёт на нужное место. Ессно, что искать нужно в декриптованном файле, а не в заархивированном GZIP архиве. |
Интересно, а никто не пробовал несжатый *.prx сжать (исходник не сжатый)?
|
myhouse_1991, в смысле? Если ты имеешь ввиду recovery.prx, то он в проше сжатый.
А вообще я только этим способом расжимаю и сжимаю все файлы. Никакими конвертерами не пользуюсь, т.к. это лишние заморочки, на которое уходит время. А таким образом значительно быстрее и всё под контролем. |
Цитата:
lex3a добавил 20-06-2009 в 19:23 Цитата:
|
Цитата:
Цитата:
|
Цитата:
Когда ты делаешь это вручную, то достаточно нажать правой кнопкой на файле и запустить Хекс-редактор. Он запустится, открыв этот файл. Далее элементарные операции Копи->New->Пасте->Save. Может это действительно чуть дольше, зато весь процесс контролируется и я точно знаю, что делаю и что получаю. Причём я могу контролировать размер файла при упаковке. Например, ты видел мой установщик 5.00М33-6 или мою сборку Пандоры. Так вот, туда никак ты не подберёшь файлы сконврченные автоконвертером, т.к. файлы от новой проши просто не влезут по размеру или не совпадёт чексумма. Цитата:
|
Такой вопросец-
Пробовал русифицировать vshmenu.prx из ultimate vsh menu v.2.00,вроде делал все по технике,несколько раз. Потом прочел в ридми патчера,что с его помощью невозможно снять 'залочку в некоторых файлах,таких как vsh меню' отсюда вопрос,можно ли пользоваться патчером,или бинарник с русским шрифтом вручную через хекс вставлять? З.Ы. Пробовал с помощью патчера,и без него,эффект нулевой( |
если "залочку" снимешь то патчером можно будет
|
Цитата:
http://i069.radikal.ru/0907/80/4290e2628196.png |
ErikPshat, огромное спасибо!
Цитата:
|
Цитата:
Цитата:
И обрати внимание в той же теме, для того, чтобы файлы принимались на чужой PSP:
Можешь проверить выложенный там мой автоконвертер тем. Когда запускаешь программу "5.00 Hybrid 5.50.exe", из неё извлекается самораспаковывающийся архив "archive.exe". В нём лежит папка "support/550/vsh/module/" и можешь посмотреть на заголовки всех 21-го файла. Yoti использовал эти-же мои файлы, только его программа пишет файлы в прошивку. Я этот метод не совсем поддерживаю, так как при замене файлов в прошивке, необходимо пропатчивать темы CTF, чтобы в них не остались ни одного файла из 21-го, иначе произойдет конфликт между разными версиями прошивок, т.к. файлы PRX и RCO работают впаре. Или вообще отказаться от использования Тем, что я считаю неприемлемым. Мой же способ - это замена/добавление файлов в Тему, после активирования которой, необходимый набор файлов активируются из темы, а не из прошивки и никаких конфликтов не будет. И вдобавок, таким образом, мы не вмешиваемся в целостность самой прошивки. Исходя из того, что хоть в первом, хоть во втором случае, необходимо пропатчивать темы, то зачем тогда производить лишнее действие по замене файлов в прошивке, если их можно добавить в Тему во время пропатчивания одним махом и так-же получить все функции прошивки 5.50. Может кто-то скажет, что я вообще не использую темы, мне это не надо, то что мешает создать стандартную CTF тему ))) А заголовок я взял когда-то давно из проги "Xmb Multi Cusomizer for Windows". При сохранении файла там есть опция компресии и она сама добавляет заголовок. Я его посмотрел и мне он понравился, поэтому я его отдельно вырезал и храню про запас )). Цитата:
|
такой вопрос: а если в фаиле нет таблицы шрифтов, что делать?
калбашу dayviewer.prx |
svetlois, да, там нету debug-шрифта. Там другой тип шрифта и причём без поддержки UTF-8, скорее всего UTF-7, в котором нет русского алфавита.
|
Небольшая проблемка...
Занялся русификацией Ultimate vsh menu for GEN (https://www.pspx.ru/forum/showthread.php?t=78952&page=2) и наткнулся на такой камень: после декриптовки установил русский патч от Andy_Man,начал редактировать строки. Псле этого вместо русских букв начали появляться англицкие,стоящие совершенно не в том адресе что я указывал (пользовался Hex Workshop и соответственно писал через таблицу символов) То ли я туплю и там залочка стоит хитрая то ли патч не в то место установился,подскажите пожалуйста |
Цитата:
Установка лимита со 128 до 256 символов (снятие залочки) |
спасибо
Сам поковырялся бы-тоже нашел,но за все равно спасибо за работу) |
вопрос появился-есть ли способы декриптовать файлы официальной прошивки?
|
Цитата:
Файлы RCO декриптуешь через Resurssiklunssi |
попробовал русифицировать рекавери от прошивки 5.50 gen-d2
делал всё по инструкции и всё равно буквы английские(всё также и осталось) что мне делать? |
alex56789, где же ты русифицировал, что даже английские буквы так же остались ))).
Если бы ты перевёл текст по русски, то на крайняк хоть крякозяблики появились бы. Значит ты ничего не русифицировал ))). Делай по инструкции... |
А у меня всё получилось! Делал точно по инструкции и никаких проблем.
Так что могу своё русское рекавери выложить ))) |
для 5.50 GEN Yoti уже сделал прекрасное русское рекавери с красивым установщиком https://www.pspx.ru/forum/showthread.php?t=82106
|
А в Д2 рекавери совпадает с Б2, Эрик писал.
|
Цитата:
|
В 5.00 M33-6 не нашел папки modules, для того чтобы взять файл recovery
Nkey добавил 02-12-2009 в 09:28 Хм.. поиск видит, а папка нет... Скрытые на отображения поставлены.. |
Скрытые или скрытые+системные?
|
Скрытые вроде.. =) системные хз как поставить..
|
Напишу по секрету - там же, но галочкой (вернее, её отсутствием), а не точечкой.
|
Nkey, https://www.pspx.ru/forum/showthread....273#post839273
Дождись, пока страница полностью не прогрузится... |
делаю первый пункт, сохраняю, но пишет что Системе не удается найти указанный путь. Что делать??? место на харде много.
|
Animeshnik96, скорее всего файл находится в папке, где в её названии или в пути присутствуют символы кириллицы или прочие символы типа точек, запятых.
Нужно просто поступить по другому - запустить HexWorkshop и в нём выбрать пункт File->Open. |
ErikPshat, Зделал всё с Рековери меню 5.00m33-7, всё карябликами, может я чтото не так делаю.
|
а откуда нам знать что ты делаешь? мы конечно может телепатически узнать, но делаем это только в редких случаях, для особых людей...
|
Текущее время: 06:20. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.