Скачайте и разархивируйте :
//narod.ru/disk/5172915000/Recovery & Satelite 5.00 M33-6 Russian.rar.html
архив содержащий всё необходимое для нашей работы:
Хекс-редактор
Готовые закладки HBK, содержащие все необходимые маркеры позиций в Хексе.
Оригинальный файл recovery.prx
Декриптованный файл recovery.prx
Ну и готовый кастомизированный файл recovery.prx, для примера.
Декриптовка - это самый лёгкий и быстрый этап.
Для примера я взял файл recovery.prx из flash0 своей прошивки, который лежит в папке: flash0:/vsh/module/...
Вам понадобится Хекс-редактор (он есть в архиве), после установки которого, у вас появиться в контекстном меню при клике правой кнопкой мыши на файле - пункт "Hex Edit with Hex Workshop v5".
1. Нажмите правой кнопкой на файле recovery.prx, предварительно скопированном из прошивки на компьютер, и выберите в открывшемся контекстном меню этот пункт "Hex Edit with Hex Workshop v5". Этот файл откроется в Хекс-редакторе.
файлы в прошивке находятся в запакованном виде. На это указывает начало файла в заголовке в правом столбце: ~PSP
Цитата:
1. Заголовoк - ~PSP - это та часть кода, которая содержит технические данные о файле и метод защиты (проверка целостности данных).
Находится в начале файла от 0х0 до 0х14F включительно в 16-ричной системе исчисления и содержит ровно 150 Байт
Здесь как раз вы этот заголовок и видите. Он выделен чёрным цветом с красной окантовкой и составляет ровно 150 байт, о чём свидетельствуют цифры внизу в выделенной красным рамке (Sel от слова Select - выбрано, выделено):
зайдите в меню "Options->Preferences" и на первой вкладке "Layout" сделайте так как показано на рисунке ниже, затем нажмите кнопку "Применить" и "ОК
Теперь мы видим числа побайтово, то есть попарно по два числа. Один байт - это двухзначное число в 16-ричной системе исчисления от 00 до FF.
Нам нужно из файла выдернуть "Исполняемый код ELF", который фактически и есть GZIP-архив, о котором я упоминал в предисловии. Он начинается от 0х150 включительно и до конца файла, сразу после "Заголовка ~PSP". Чем мы и займёмся далее...
2. Ставим курсор в начало строки 0х150. Число 0х150 - это не что иное, как 00000150 в левом вертикальном столбце отсчёта, просто записываются для удобства без лишних нулей спереди. Эта цифра так же отображается в нижней строке окна программы под названием "Offset: 00000150" и указывает на позицию, где находится курсор, как показано на рисунке ниже:
3. Нажмите сочетание клавиш Shift + End - у вас выделится часть кода файла от места, где стоял курсор и до конца:
4. Нажмите сочетание клавиш CTRL + C - выделенная область скопируется в буфер обмена.
5. Нажмите в верхнем меню "File->New
У вас создасться новый пустой документ
6. Нажмите сочетание клавиш CTRL + V - скопированные ранее данные вставятся в новый документ, но в красном цвете
7. Нажмите в верхнем меню "File->Save As..."
8. В открывшемся окне сохранения введите название файла, как "recovery.gz" и нажмите кнопку "Сохранить" - не забыли, что это у нас GZIP-архив?
После сохранения, код в хекс-редакторе изменится с красного на чёрный. Теперь вы можете совсем закрыть хекс-редактор и перейти в папку с сохранённым только-что GZIP-архивом.
9. Разархивируйте полученный архив любым архиватором.
Вы получите файл "recovery", но без всякого расширения.
10. Нажмите на файле правой кнопкой мыши и выберите из раскрывшегося контекстного меню пункт "Переименовать".
11. Добавьте расширение ".prx" к названию файла "recovery" и нажмите Enter
12. Всё, декриптованный файл "recovery.prx" у вас готов!!!
Убедиться в этом можно, открыв его в хекс-редакторе и увидев заветное слово ELF в начале файла:
13. Выделите весь код файла, нажав CTRL + A и запишите на бумажке значения всего выделенного декриптованного ELF-файла внизу в области Sel: 0xf55e. Эта цифра нам понадобится в самом конце при криптовке, не забудьте!
Значения каждого из трёх цветов могут иметь числа от 00 до FF:
00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F...
F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, FA, FB, FC, FD, FE, FF.
Итого 256 значений (от 00 до FF или от 0 до 255, включая Ноль).
При перемешивании трёх цветов RGB (256х256х256) получается один цвет из 16'777'216 возможных оттенков.
1. Цвет Заголовка первых двух строк.
Offset: 0x36C0 - R (Red-Красный)
Offset: 0x36C1 - G (Green-Зелёный)
B (Blue-Синий) - отсутствует, но если значение Зелёного меньше 7F (середина между 00 и FF), то он принимает значение 00, если больше 7F, то принимает значение FF.
2. Цвет неактивных пунктов.
Offset: 0x3718 - R (Red-Красный)
Offset: 0x3719 - G (Green-Зелёный)
Offset: 0x3710 - B (Blue-Синий)
3. Цвет активного пункта.
Offset: 0x3724 - R (Red-Красный)
Offset: 0x3725 - G (Green-Зелёный)
B (Blue-Синий) - отсутствует, но если значение Зелёного меньше 7F (середина между 00 и FF), то он принимает значение 00, если больше 7F, то принимает значение FF.
4. Цвет полосы с символами снизу.
Offset: 0x3758 - R (Red-Красный)
Offset: 0x3759 - G (Green-Зелёный)
B (Blue-Синий) - отсутствует, но если значение Зелёного меньше 7F (середина между 00 и FF), то он принимает значение 00, если больше 7F, то принимает значение FF.
5. Выбор символа в полоску снизу.
Offset: 0x3784 - в данной позиции кода можно вписать один любой из 256 символов
Код символа состоит из двух знаков (байт). Смотрите в таблице понравившийся знак и вставляете в Offset: 0x35F4 его двузначный код - знак по вертикали + знак по горизонтали.
Например, вы захотели вставить Сердечко, то вводите 03, если захотели символ нотки, то вводите 0D, а если захотели букву Z, то значит надо подставлять код 5A.
Примечание (себе на заметку):
Если цвет "B" (синий) отсутствует, то после значений цветов "R" и "G" идёт 0424.
Если цвет "B" (синий) присутствует, то после значений цветов "R", "G" и "B" идёт 8434
Первая строка - "М33 Recovery Menu" находится по адресу 0x894C
Добавлено спустя 13 минут 59 секунд:
Сообщение отредактировано 26 июля 2009 01:35. Редактировалось 1 раз(а)