Форум программистов, компьютерный форум, киберфорум
Наши страницы
Софт: Архивирование и бэкап
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
C5674
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
1

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

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

Доброго времени суток, тип файла определён ОС как .pak archive, собственно я бы хотел модифицировать в данном архиве пару файлов. С помощью чего его упаковали я понятия не имею. Идея предложения как это провернуть, а точнее распаковать и запаковать обратно, что бы программка его без проблем скушала и работала. Заранее благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2016, 11:06
Ответы с готовыми решениями:

Помогите найти хорошую программу для открытия архива *.pak
Помогите найти хорошую программу для открытия pak архива, уже устал искать......

Поврежденный RAR .archive
Как восстановить поврежденные RAR .archive? Всем привет,хочу обратиться с...

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

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

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

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

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

Не по теме:

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

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

Не по теме:

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

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


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

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

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

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

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

Как альтернатива (для разовой задачи) - находите (глядя в хрустальный шар) нужный ресурс и делаете все нужные правки в HexEdit. Но от разбора формата оглавления это все равно не избавит.
1
C5674
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
gazlan
3161 / 1920 / 312
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 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
C5674
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
09.12.2016, 00:36  [ТС] 13
gazlan, ну из документации к QuickBMS скрипты написаны на XeNTaX.
0
gazlan
3161 / 1920 / 312
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
09.12.2016, 00:43 14
Цитата Сообщение от C5674 Посмотреть сообщение
XeNTaX
Далек я от этих вещей. Мне это название ни о чем не говорит.
0
C5674
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
gazlan
3161 / 1920 / 312
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
09.12.2016, 02:10 16
С ходу ничего не скажу - надо сверять в Hex-редакторе, что структура оглавления разобрана корректно (+ по скрипту, в оглавлении записи пара пустых полей - не факт, что они в самом деле пусты). Если так, то несложно сделать экспорт (OFFSET, ZSIZE). Импорт же, вероятно, потребует коррекции offsets всех последующих файлов. Иными словами, может оказаться, что проще сделать рекурсивный сборщик всей этой "рассыпухи", при этом офсеты будут выставлены автоматически.

Не по теме:

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

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

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

Уравняйте, на пробу, размер нового файла со старым - байт в байт - и попробуйте импорт - что скажет?
0
09.12.2016, 04:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2016, 04:33

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru