Перейти к содержимому
Zone of Games Forum
wower1player

Вскрытие архивов

Рекомендованные сообщения

Привет всем!

Хочу научиться распаковыать игровые архивы.

В гугле нашел способ, но он подходит только для псевдоархивов с фат-таблицей.

Интересен принцип исследования.

Например, как определить, сжат или не сжат файл?

Если сжат, то чем? Например, если zlib, то в файле будет присутствоать данное название. Ну либо по вызываемым модулям.

Надеюсь на помощь.

Поделиться сообщением


Ссылка на сообщение
как определить, сжат или не сжат файл?

Если у тебя один ресурс файл на все, то он как минимум упакован и было бы невероятным увидить что-то типа resource.tar

поэтому такой файл наверняка запакован.

Еще можно проверить энтропию файла и убедится в наличии архивации.

Не редко файлы сначала архивируются каким-то методом, а потом архивы пакуются в один файл, тогда этот файл содержит в себе как минимум архивы и информацию о смещении до каждого.

Бывают еще непрерывные архивы, когда файлы сначала упаковывают, а полученный пакет уже архивируют, тогда его структура зависит от алгоритма сжатия и может быть весьма неоднозначной, чтобы с ходу определить размер атома такого архива, либо размер ключа зашифрованной последователности стоит определить уровень негэнтропии для подпоследовательностей разных размеров и ориентироватся на те, которые кратны 8 битам, потомучто в программах почти всегда (ну, или всегда) пользуются байтами.

Еще для того, чтобы читать структуру файла необходима знать и понимать типы данных, тех-что в С++ впринципе почти всегда достаточно.

Если сжат, то чем? Например, если zlib, то в файле будет присутствоать данное название. Ну либо по вызываемым модулям.

Надеюсь на помощь.

посмотреть список вызываемых модулей вы можете с помощью process explorer или аналогов (существуют с открытыми исходниками).

их назначение определить по их интырфейсам (при знании английского, практик хорошего кода и распространненых имен переменных, например ptr - это указатель) или найдя в интернете имя соответствующего модуля можно найти тамже его сайт или описание его назначения.

Также в файле можно встретить сигнатуры - заголовок (если он есть) нередко начинается с четырех символьной сигнатуры (метаданные определяющие тип файла), либо другие повторяющиеся четырех символьные сигнатуры. Также можно встретить трехсимвольные сигнатуры состоящие из заглавных англ. букв в ASCII.

Найти соответствие сигнатур можно в интернете, поисковики часто ссылаются на БД сигнатур, можно в спецификациях файлов найти описание их структуры и используемые сигнатуры или наткнутся на них в логах (например отчетах об ошибках, которые выкладывают при креше программ или варингах компиляции, которые выкладывают программисты в случае ошибок в коде, с которыми сами не справились)...

Также описание игровых форматов можно найти на http://xentax.com (создали сайт двое сценери из сообщества демо сцены, занимающиеся разбором игровых ресурсов очень давно).

Возможны способы сложнее.

Изменено пользователем AwsomeEpicCool

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2024 | Реклама на сайте.

×