Разбор формата FLASH0.TN из комплекта CEF
Появилась идея перевести/замодить recovery и vsh menu текущей версии CEF TN-V 7.3.
Вся проблема в том, что оригинальные файлы из прошивки PSP 6.60 лежат открыто, а вот пачка кастомных - упакованы в один архив, который я и пытаюсь разобрать. Сжатие используется не такое, как в оригинале. На всякий случай ссылка на файл. Форматы архива для TN-C, сырцы которого есть в сети и текущей версии TN-V7.3 немного отличаются, но как мне показалось только заголовком. Разобрал примерно так: 0x00 - 4 байта - количество файлов в архиве (0x0D = 13) 0x04 - 4 байта - magic TNPK 0x08 - 4 байта - размер файла в распакованном виде 0x0C - 4 байта - размер длины строки пити к файлу (0x0F) 0x10 - 15 байт (0x0F) - путь к файлу в архиве 0x1F - 1 байт - размер имени заголовка файла (0x1D) 0x20 - 29 байт (0x1D) - заголовок файла 0x3d - ?? тело упакованного модуля ?? 0x0DC1 - снова 4 байта magic TNPK и далее всё по аналогии... Может будут подсказки? PS. Сам TN, к сожалению, ограничился кратким ответом: Цитата:
|
В старых сырцах TN-V есть прога package_maker.exe, но она только запаковывает.
upd/ во FLASH0.TN файлы лежат в чистом виде, даже не запакованы а метод распаковки есть в самих сырцах TN пакер/анпакер сделать расплюнуть |
Пакер из тн-с я смотрел, благодаря сравнению данных до и после упаковки получилось кой-чего выудить из того, что написано. Там однозначно какое-то сжатие есть, т.к. после сборки flash0.tn он весит меньше, чем файлы в нём до упаковки + в хексе данные не совпадают, если бы в чистом виде лежали - то можно было бы руками всё выдрать и не париться.
По сути только анпакер нужен. Буду благодарен , если сможешь собрать... |
lupus, а можно что-нибудь изменить не дергая тотал_нуба? Ну например на бум повключать звук в пс1 хоть какой, или ну не знаю сделать фикс для досБокс используя анализ АРК прошивки (там он работает) или вообще что-нибудь в этом роде? например убрать поддержку 64 метров оперативки в 2.12, оно нестабильно.
|
lupus, хорошо, вечером сделаю
|
Цитата:
Цитата:
|
|
frostegater, что-то я бинарника в архиве не вижу, там только сырцы? Собери, если не сложно.
|
Вложений: 1
lupus, Вложение 9686
|
Хм, это просто разбор на части, а что с декомпрессией?
Цитата:
Это как-то поможет? Код:
u32 file_count; |
lupus, https://www.pspx.ru/forum/showthread.php?t=76183
Пспшная gzip компрессия. |
Я это в первую очередь попробовал.
Цитата:
|
lupus, ага) ок разберемся, мне сказали какое там сжатие
|
Ок, жду))
|
Как всегда все оказалось намного сложнее. Сейчас делаем реверс алгоритма шифрации TN.BIN, чтобы вытащить алгоритм декомпрессии)) Может по пути обнародуем kernel эксплоит ТНа.
TN.DECODER |
Обнародовать может пока и рано. Мне на данном этапе достаточно непожатых recovery и satellite.
|
lupus, ну дак их можно достать и без распаковки. Вопрос как обратно запакуешь?
|
Ну так я ж писАл: вынуть и распаковать, чтобы можно было редактировать. А назад запихивать не обязательно, достаточно их в папку kd положить, чтобы cef их подхватила. Об этом TN мне на вололо сказал.
|
Ну как, есть сдвиги?
|
lupus, да пока занят. Модули можно сдампить напрямик из RAM, там они в чистом виде лежат.
|
Расскажи чем и как это на витке сделать?
|
lupus, я сам попробую, объяснить это сложнее. флеш0 в вите представлен "сгустком" памяти - flashspace, таблица лежит по адресу 0x08B00000 и составляет структуру
struct{ char *modname; void *buffer; u32 modsize; } flashspace; читать память пока пойнтер buffer не станет нулевым. Особо ничего сложного, только я в трусах на заваленом вещами кресле в 8 утра сползаю под стол :D а вообще я лавно работаю над этим вопросом, только инаким путем. Достанем модули. |
Ясно, этот метод не для меня. Запасаюсь терпением...
*ушёл играть в наёмника* |
Фрости, есть ли сдвиги?
|
Цитата:
И даже подменял кастомные файлы в упаковке. Думаю в 7-ой редакции ничего более хитрого не свершилось. |
Хм, буду с компа, попробую поискать по твоим постам...
Хотя, со времён tn-c формат немного поменялся, но сжатие, надеюсь, осталось старым. |
Эрик, что-то ничего похожего пока не нахожу...
|
ErikPshat, в старой версии компрессии не было. Сейчас там какой-то хитрый алгоритм. Вроде LZSS, но модифицированный. Я в принципе сдампил VSH меню, но в байткоде, то есть это не ELF. Сейчас время появится попробую перехват функций из библиотеки LoadExec.
|
Цитата:
Думаю здесь ТН наврятли написал свой архиватор, а скорее использовал известрые библиотеки сжатия. Поэтому нужно не отлавливать в памяти модули, а искать по мэйджику первых 4-х байт сжатой области - спецификацию архива. ПыСы. Сейчас компа нет под рукой, сижу с мобилы, поэтому даже не могу взлянуть на внутенности нового релиза. |
ErikPshat, та сказка про яйцо в курице, в яйце игла, а на кончике иглы смерть TNа уже не катит. Тут конкретно контейнер компрессованых файлов и мейджик у каждого ТНовский, фирменный.
|
Цитата:
Например 1F8B0880 подмняет на что-то свое. |
Мог бы, это наиболее логично, но вот что именно он туда запихнул - хз...
|
Наконец-то добрался до ББ, однако инет у меня мобильный МТС EDGE. Ни роутера. Хитрыми извратными способами удалось приконнектить телефон симбиан к ББ и таким образом выходить в инет с Большого Брата :) Теперь хоть разглядеть форум на большом экране можно.
Что-то я не понял. Вроде речь шла о компрессии FLASH0.TN, но я что-то вижу, что каждый файл в отдельности как-то не так упакован. Пойду искать очки... |
Ну так я об этом с самого начала и говорил. Что просто вынуть файлы из контейнера - не проблема, а вот распаковать их - это та ещё задачка.
|
Балин, недолго длилась радость с ББ. Установил на комп Logitech SetPoint для поддержки клавиатуры и мышки. После этого комп вывалился с синий экран смерти. Теперь даже в "Безопасный режим" не входит. И диска реаниматора нет с собой :(
Так что я пока в ауте. Кстати, не успел разглядеть хедеры, не мог он подисать модули официальными ключами, например через prxEncrypter? |
|
Эрик, вот скрин из хекса:
F0.TN |
Цитата:
|
Хм, а что там? Не томи... Я с телефона тоже.
|
Цитата:
Цитата:
|
Текущее время: 00:08. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.