Перейти к содержимому


Внимание!

Это форум по извлечению ресурсов из игр: музыки, звуков, текстур, 3D-моделей...
Перед поиском ответов на форуме, рекомендуется ознакомиться с основным сайтом EXTRACTOR.ru!
[ Прочтите внимательно - правила создания тем и ответа в них ]
Все вопросы по запуску игр задавайте в другом месте: Установка и запуск игр.


Фотография

The Elder Scrolls Online [.DAT]


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 allod26

allod26

    Ефрейтор

  • Пользователи
  • 6 сообщений

Отправлено 14 July 2013 - 18:47

Здравствуйте, нужна помощь с распаковкой архивов из TES Online, стандартные распаковщики не помогают.
Пример архива: http://yadi.sk/d/8KQFAIm-6owUs

#2 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 15 July 2013 - 11:40

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

#3 h4x0r

h4x0r

    Рядовой

  • Пользователи
  • 3 сообщений

Отправлено 08 August 2013 - 07:23

Вообщем то начал смотреть эту ММО еще с альфы. Вся инфа Offsets, Size, ZSize находится в .MNF файле. Там 3 сжатых блока. Первый и второй хз что за блоки, а вот третий то что нужно.

Загаловок .MNF

0x4 - szID (always MES2)
0x15 - szUnknown
0x4 - szFilesCount (in DATs) (endian BIG)
0x4 - szFilesCount (in DATs)

Записи (для 3 блока)

0x4 - szFileSize (Размер файла)
0x4 - szFileZSize (Сжатый размер)
0x4 - szUnknown01 (хз что это.. может хеш или CRC)
0x4 - szOffset (Смещение)
0x1 - szComType(0 - Not Compressed, 1 - Zlib, 2 - Snappy)
0x1 - szArchiveNum (Номер архива)
0x2 - szUnknown02

Изображение

Имена файлов в таблице отсутствуют. Похоже на то что они хешированы. Нашел ("хеш") функцию через которую они проходят 3 раза с разными путями: Пример

[1]
EsoUI/PregameLocalization/LocalizePregameGeneratedStrings.lua

[2]
esoui/pregamelocalization/localizepregamegeneratedstrings.lua

[3]
/esoui/pregamelocalization/localizepregamegeneratedstrings.lua

Выдрал эту функцию, написал маленькую утиль String to Hash... На выходе ("хеш суммы") в таблице отсутствуют. Так же игра обращается к трем ZOSFT (Zenimax Online Studios File Table) таблицам (они есть не во всех архивах - только в 3):

/filetable.dat
/animsfiletable.dat
/internalfiletable.dat

Они содержат имена файлов НО не соотвествуют кол-вам файлов в архивах. Со всех 3 таблиц собрал всего 63к имен но в архивах 234к :)

Здесь мой пост на XeNTaX'e если у кого будут какие идеи буду рад.

#4 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 08 August 2013 - 07:31

Они содержат имена файлов НО не соотвествуют кол-вам файлов в архивах. Со всех 3 таблиц собрал всего 63к имен но в архивах 234к

Может быть такое, что там просто мусор?
В некоторых форматах файлы в архиве просто удаляются из таблицы размещения файлов, а сами файлы в архиве при этом остаются (т.е. нет дефрагментации).
Т.е. архив выглядит как-то так:
ФАЙЛ_01
ФАЙЛ_02
МУСОР_01 // место занимаемое когда-то удалённым ФАЙЛОМ_03
ФАЙЛ_03 // это бывший ФАЙЛ_04
ФАЙЛ_04 // это бывший ФАЙЛ_05
...

#5 h4x0r

h4x0r

    Рядовой

  • Пользователи
  • 3 сообщений

Отправлено 08 August 2013 - 09:21

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

Извлекается ровно столько, сколько в таблице записей. Вот самый малый архив с манифестом если есть желание поглядеть you are welcome :)