8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
1

Распаковать и запаковать .Pak Archive из игры

08.12.2016, 11:06. Показов 14904. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, тип файла определён ОС как .pak archive, собственно я бы хотел модифицировать в данном архиве пару файлов. С помощью чего его упаковали я понятия не имею. Идея предложения как это провернуть, а точнее распаковать и запаковать обратно, что бы программка его без проблем скушала и работала. Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2016, 11:06
Ответы с готовыми решениями:

Как запаковать и распаковать файлы? Ну хотя бы распаковать?
Как распаковать архив rar или zip из кода? Знаю, что есть библиотеки UnRar.dll и UnZip.dll, но как...

Как распаковать запароленные файлы с pak?
В общем, я полный ноль в этом, решил распаковать парочку файлов с .pak`a, все открывается, даже...

Как с использованием 7-Zip запаковать файлы и каталоги в архив и распаковать их из архива?
Научите меня 7z паковать! Документация выводится в консоль, но всё же пробами и ошибками долго...

Распаковать архивы в папки с именами архивов, переименовать некоторые файлы по маске и обратно запаковать
Нужна помощь!!! Есть папка, в которой куча архивов *.zip Нужно распаковать архивы в папки с...

26
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.12.2016, 14:24 2
Цитата Сообщение от C5674 Посмотреть сообщение
определён ОС
"Ни о чем".

Если повезет, что-то покажет Offzip с сайта Luigi Auriemma.
2
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
08.12.2016, 14:33  [ТС] 3
gazlan, с помощью QuickBMS можно ведь каким то образом распаковать?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.12.2016, 14:44 4
Цитата Сообщение от C5674 Посмотреть сообщение
каким-то образом

Не по теме:

Экстрасенсы в отпуске.

0
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
08.12.2016, 14:47  [ТС] 5
gazlan, ладушки, по теме, нужен скрипт, с помощью которого можно распаковать/запаковать
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.12.2016, 15:00 6

Не по теме:

Как-бы это... помягче...

Есть такая русская народная сказка: "ПОДИ ТУДА - НЕ ЗНАЮ КУДА, ПРИНЕСИ ТО - НЕ ЗНАЮ ЧТО".


Не имея самого файла, смешно даже начинать обсуждение.
0
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
08.12.2016, 15:25  [ТС] 7
gazlan, https://yadi.sk/d/_3QCSrp332ZYTm файл в архиве
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.12.2016, 17:58 8
Не вижу никакой упаковки. Вначале идет длинное оглавление (блоками по 280 байт), потом сами файлы игры (TARGA) итп (MESH2.00, ANIM3.00 etc).
1
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
08.12.2016, 22:45  [ТС] 9
gazlan, Файлы ведь упакованы в этот пак. Ведь если его раскрыть, будет 6 папок с файлами. Вот я и спрашиваю как получить это 6 папок и потом собрать их обратно.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.12.2016, 23:28 10
Ну, если угодно называть это "упаковкой" :-)

Фактически, это библиотека - a la TAR.

IMHO, стоит поискать что-то готовое на специализированных ресурсах (игры, фанатов итд.) - если сама игра чего-то стоит, то кто-нибудь, наверняка, уже этим занимался.

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

Короче говоря, много скучной и кропотливой работы.

Как альтернатива (для разовой задачи) - находите (глядя в хрустальный шар) нужный ресурс и делаете все нужные правки в HexEdit. Но от разбора формата оглавления это все равно не избавит.
1
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
09.12.2016, 00:26  [ТС] 11
gazlan, Нашел на форуме что то похожее, с помощью этого скрипта удалось извлечь папок. Был бы очень благодарен, если бы вы описали что к чему здесь.

comtype lzo1x

get PAKSIZE long
get BASEOFF long
get FILES long

for i = 0 < FILES
filexor "\xff"
getdstring NAME 0x100
get OFFSET long
get ZSIZE long
get SIZE long
get DUMMY longlong
get DUMMY long
filexor ""
if ZSIZE == SIZE
log NAME OFFSET SIZE
else
clog NAME OFFSET ZSIZE SIZE
endif
next i

Добавлено через 8 минут
gazlan,
Цитата Сообщение от gazlan Посмотреть сообщение
Как альтернатива (для разовой задачи) - находите (глядя в хрустальный шар) нужный ресурс и делаете все нужные правки в HexEdit. Но от разбора формата оглавления это все равно не избавит.
https://gyazo.com/c44fdb20d96839a33e40366bb5ebd2ff
Собственно вот что получилось
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.12.2016, 00:32 12
Могу предположить (не зная языка скрипта), что файл описывается как .LZO-архив. Далее происходит разбор оглавления (get PAKSIZE long / get BASEOFF long / get FILES long) и итерация (for i = 0 < FILES) по файлам: имя файла дешифруется (filexor "\xff"), разбирается заголовок записи, отыскивается размер файла и, при совпадении полей (if ZSIZE == SIZE) логгируется запись о файле.
1
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
09.12.2016, 00:36  [ТС] 13
gazlan, ну из документации к QuickBMS скрипты написаны на XeNTaX.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.12.2016, 00:43 14
Цитата Сообщение от C5674 Посмотреть сообщение
XeNTaX
Далек я от этих вещей. Мне это название ни о чем не говорит.
0
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
09.12.2016, 01:57  [ТС] 15
gazlan, https://gyazo.com/413346b391909ed74c5ccc9c2e032cc3
Вот что получается при замене, 0 файлов...

Добавлено через 18 минут
gazlan, https://gyazo.com/413346b391909ed74c5ccc9c2e032cc3
Вот что получается при замене, 0 файлов... gazlan, мб это потому что я меняю в .txt значение и программа не замечает этого?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.12.2016, 02:10 16
С ходу ничего не скажу - надо сверять в Hex-редакторе, что структура оглавления разобрана корректно (+ по скрипту, в оглавлении записи пара пустых полей - не факт, что они в самом деле пусты). Если так, то несложно сделать экспорт (OFFSET, ZSIZE). Импорт же, вероятно, потребует коррекции offsets всех последующих файлов. Иными словами, может оказаться, что проще сделать рекурсивный сборщик всей этой "рассыпухи", при этом офсеты будут выставлены автоматически.

Не по теме:

Если пишете на C, можете взглянуть на пример сходной задачи здесь: Есть очень много маленьких текстовых файлов необходимо слить в один файл.

0
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
09.12.2016, 02:22  [ТС] 17
gazlan, Там не только .txt файлы, ведь это какой то конфиг файл игры и то, из чего собрана эта рассыпуха - тоже вопрос. Судя по тому, что я вычитал о QuickBMS с помощью него можно заменить некоторые файлы, т.е. только те, которые я редактировал, что мне и нужно. Я и спрашиваю, может ли быть такое, что из-за того, что в 3-ёх файлах изменено значение с 20 на 20000, файлы не меняются?
Не по теме: изменив в файле skill.txt значение в поле Range я получу изменение в самой игре или будет дроп с сервера/краш клиента/ничего работать не будет?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.12.2016, 02:52 18
  • о QuickBMS кроме названия ничего не знаю
  • возможно, причину ошибки можно понять по скрипту импорта
  • об играх/дропах/серверах/клиентах не имею ни малейшего понятия
  • первое, что могу предположить: размеры старого и нового файла не совпали и импорт невозможен (причем, как я уже писал, эти изменения придется проводить "насквозь" через весь остаток файла).
0
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
09.12.2016, 03:01  [ТС] 19
gazlan,
Цитата Сообщение от gazlan Посмотреть сообщение
первое, что могу предположить: размеры старого и нового файла не совпали и импорт невозможен (причем, как я уже писал, эти изменения придется проводить "насквозь" через весь остаток файла).
Там до байтов, от того, что я добавил в каждом файле по 4 символа - ничего не поменялось, с точки зрения, замены файлов.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
09.12.2016, 04:33 20
Если разобрать и собрать заново старый пакет получается, а модифицированный пакет - нет, то, почти наверняка, проблема в размере (проверка контрольной суммы выглядит маловероятной).

Представьте себе кирпичную кладку. Если из нее в середине выбит кирпич, то заменить можно только на такой же - ни больше, ни меньше.

Уравняйте, на пробу, размер нового файла со старым - байт в байт - и попробуйте импорт - что скажет?
0
09.12.2016, 04:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 04:33
Помогаю со студенческими работами здесь

Чем и как распаковать *.dat-файл игры
Приветствую всех! Скачал игрушку Guild Wars 2. Я удивился, когда увидел что клиент состоит всего...

Чем распаковать файл установки игры BIN?
перестала устанавливаться игра Drakensang река времени.файл установки выдает ошибку. смог только...

Как можно распаковать JAR файл Игры для телефона
Хочу сообщить о проблеме, дело в том что я пытаюсь распоковать jar файл (игра для телефона) мне...

Формат PAK
Здравствуйте все, вот какая проблема. У моей соседки есть ребёнок-инвалид. Они ездили в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru