IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Описание форматов файлов, всевозможные ресурсы
-=CHE@TER=-
Jul 23 2006, 20:06
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Итак, начнём.
Я тут увидел, что многие программы, которые я выкладываю на сайте - уже есть в XENTAX WIKI Grafs. Так что, я думаю, что имеет смысл делать распаковщики и выкладывать описания форматов, которых нет там. А то, как-то тупо получается - тут я выкладываю формат, который раскопал сам, в то время как он уже готовенький лежит там.

Ну, вот этого формата я там точно не видел:
QUOTE
Формат: .WD
Игра: Earth 2140

4 байта - количество файлов в архиве (обозначим их как TF)

далее следует блок описания такого формата:
4 байта - абсолютное смещение файла относительно начала архива
4 байта - размер файла
8 байт - зарезервированно - всегда 0-ли (в том архиве, который мне давал когда-то Siberian GRemlin для написания распаковщика - "FONT.WD")
4 байта - какая-то контрольная сумма - у всех файлов разная
4 байта - смещение имени файла в списке имён (NOfs) - см. дальше

Блок описания нужно повторить TF раз.

4 байта - размер списка имён

Затем идёт сам список имён файлов:
NAME1\0NAME2\0 и т.д.
т.е. просто TF штук ASCIIZ-строк друг за другом.

Если прочитать список имён в отдельную переменную-указатель, то через NOfs в качестве побайтового индекса, мы получим указатель на начало ASCIIZ-строки, с именем нужного нам файла.
Имя файла может содержать относительный путь, с использованием символа слэш "/" в качестве разделителя.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
-=CHE@TER=-
Mar 31 2019, 06:29
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Если кто пользуется программой pngout, то знает, что если запустить её без параметров, то она покажет справку по использованию, где помимо всего прочего будет и такая строка:
QUOTE
/mincodes# Workaround for buggy decoders. 1:Zlib 1.2.1 bug, 2:buggy mobiles
Я как-то никогда не обращал на неё внимание. А тут, пару лет назад, начали в комментариях к перепаковщику архивов для Санитаров Подземелий жаловаться, что с новыми (перепакованными) файлами игра не работает и валится с ошибкой, даже если ничего не менять, а только распаковать и сразу же запаковать назад. Я сначала было убрал упаковку вообще, благо игра позволяла это сделать флагами в TOC/FAT архива, но потом, всё же, попробовал её вернуть. Проблема была в том, что я всегда использовал последнюю версию zlib. Здраво решив, что здесь что-то не так, я поглядел исполняемый файл игры и, увидев там строчку "zlib 1.2.1", взял эту же версию библиотеки после чего файлы стали получаться один в один как в игре. Поставив проверку в исходных кодах чтобы не использовали другие версии zlib я благополучно об этом и забыл.
Но, на всякий случай, если кто-то будет изменять другие игры и игра невоспринимает ничего кроме сжатых данных, а при перепаковке возникает ошибка - посмотрите не использует ли игра zlib версии 1.2.1.
Если коротко, то из-за ошибки в 1.2.1 сжатые файлы можно распаковать другими версиями, но вот сама 1.2.1 может распаковать только то, что сжато ей же или, как в pngout, программами которые могут эту ошибку эмулировать. Ещё, как вариант, можно попробовать заменить код zlib, если он в отдельном .DLL файле.
Цитата из zlib/ChangeLog (1.2.1.1 - это версия следующая сразу за 1.2.1):
CODE
Changes in 1.2.1.1 (9 January 2004)
...
- Fix a big fat bug in inftrees.c that prevented decoding valid
  dynamic blocks with only literals and no distance codes --
  Thanks to "Hot Emu" for the bug report and sample file
...
Интересно, что версия 1.2.1 вышла 2003.11.17, а исправленная 2004.01.09 - казалось бы, интервал всего в два месяца, но насколько эта версия успела широко разойтись.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме
-=CHE@TER=-   Описание форматов файлов   Jul 23 2006, 20:06
9k1d   не то? http://filext.com/file-extension/wd   Dec 12 2007, 13:20
-=CHE@TER=-   не то? http://filext.com/file-extension/wdНет коне...   Dec 12 2007, 15:54
Siberian GRemlin   Формат же разобран...   Dec 12 2007, 17:41
jTommy   Я тут увидел, что многие программы, которые я выкл...   Dec 13 2007, 18:20
-=CHE@TER=-   Так программы или описания? Там вроде ссылки тольк...   Dec 14 2007, 09:32
Siberian GRemlin   у меня была версия где тело файлов не шифровалось,...   Dec 14 2007, 16:27
-=CHE@TER=-   А ты её выкладывал?Изменённую утилиту? Нет. Я же ч...   Dec 15 2007, 09:14
Siberian GRemlin   Давай. Пригодится.   Dec 15 2007, 20:21
-=CHE@TER=-   Блин, вру - и ни в одном глазу! Поправил неточ...   Dec 16 2007, 10:13
-=CHE@TER=-   Как различить, когда в архиве используется шифрова...   Nov 1 2016, 15:50
-=CHE@TER=-   Наверное тут будет самое место. Очень подробное оп...   Apr 6 2010, 16:47
-=CHE@TER=-   - Ancient chinese secret! © Lo Wang, Shadow Wa...   Sep 6 2014, 16:27
-=CHE@TER=-   На сайте про игру Total Overdose спрашивали, так ч...   Jun 9 2018, 17:27
-=CHE@TER=-   Обновил программы. Для Total Overdose ещё раз пере...   Jul 14 2018, 16:49
-=CHE@TER=-   Если кто пользуется программой pngout, то знает, ч...   Mar 31 2019, 06:29
-=CHE@TER=-   Понадобилось мне тут как-то создать длинный JPEG ф...   Mar 24 2020, 14:43
-=CHE@TER=-   Закрывая тему по игре Total Overdose - на сайте оп...   Sep 20 2022, 10:55


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 28th March 2024 - 19:19