The Elder Scrolls Online [.DAT]
Автор
allod26
, Jul 14 2013 18:47
Сообщений в теме: 4
#1
Отправлено 14 July 2013 - 18:47
Здравствуйте, нужна помощь с распаковкой архивов из TES Online, стандартные распаковщики не помогают.
Пример архива: http://yadi.sk/d/8KQFAIm-6owUs
Пример архива: http://yadi.sk/d/8KQFAIm-6owUs
#2
Отправлено 15 July 2013 - 11:40
Если нужно достать файлы, то STUNS в помощь (или его обновлённая версия, где можно пропустить мелкие файлы) - там обычный zlib.
Перед сжатыми файлами идут 8 каких-то байт (видимо сжатый/распакованный размеры), но они зашифрованы.
Ещё наблюдаем за этой темой - может там кто распаковщиком заморочится.
Перед сжатыми файлами идут 8 каких-то байт (видимо сжатый/распакованный размеры), но они зашифрованы.
Ещё наблюдаем за этой темой - может там кто распаковщиком заморочится.
#3
Отправлено 08 August 2013 - 07:23
Вообщем то начал смотреть эту ММО еще с альфы. Вся инфа Offsets, Size, ZSize находится в .MNF файле. Там 3 сжатых блока. Первый и второй хз что за блоки, а вот третий то что нужно.
Загаловок .MNF
Записи (для 3 блока)
Имена файлов в таблице отсутствуют. Похоже на то что они хешированы. Нашел ("хеш") функцию через которую они проходят 3 раза с разными путями: Пример
Выдрал эту функцию, написал маленькую утиль String to Hash... На выходе ("хеш суммы") в таблице отсутствуют. Так же игра обращается к трем ZOSFT (Zenimax Online Studios File Table) таблицам (они есть не во всех архивах - только в 3):
Они содержат имена файлов НО не соотвествуют кол-вам файлов в архивах. Со всех 3 таблиц собрал всего 63к имен но в архивах 234к
Здесь мой пост на XeNTaX'e если у кого будут какие идеи буду рад.
Загаловок .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
Отправлено 08 August 2013 - 07:31
Может быть такое, что там просто мусор?Они содержат имена файлов НО не соотвествуют кол-вам файлов в архивах. Со всех 3 таблиц собрал всего 63к имен но в архивах 234к
В некоторых форматах файлы в архиве просто удаляются из таблицы размещения файлов, а сами файлы в архиве при этом остаются (т.е. нет дефрагментации).
Т.е. архив выглядит как-то так:
ФАЙЛ_01
ФАЙЛ_02
МУСОР_01 // место занимаемое когда-то удалённым ФАЙЛОМ_03
ФАЙЛ_03 // это бывший ФАЙЛ_04
ФАЙЛ_04 // это бывший ФАЙЛ_05
...
#5
Отправлено 08 August 2013 - 09:21
Извлекается ровно столько, сколько в таблице записей. Вот самый малый архив с манифестом если есть желание поглядеть you are welcomeМожет быть такое, что там просто мусор?
В некоторых форматах файлы в архиве просто удаляются из таблицы размещения файлов, а сами файлы в архиве при этом остаются (т.е. нет дефрагментации).