Перейти к содержимому
Zone of Games Forum
H0R

.pak и .bin файлы из Re-Mission

Рекомендованные сообщения

Два файла, доминирующих в ресурсах игры, причём наиболее интересен именно Resource.PAK, поскольку в NavigationNetwork.BIN, по-видимому, содержится информация о вейпойнтах, расположении объектов и пр., но мало ли. Я пытался вскрыть оба в DragonUnPacker, MultiExCommander и ещё в некоторых, но они категорически отказались воспринимать файлы. Зато при просмотре в WinHex и даже WinRAR Viewer хорошо видны заголовки внутренних файлов, а в некоторых частях - и их содержимое (в основном .ini).

http://www.myfolder.ru/files/40929765

Есть предложения, как распаковывать/запаковывать?

Поделиться сообщением


Ссылка на сообщение

Разобрал структуру Resource.pak

Сначала идут блоки с информацией о файлах, размером 320 байт.

В данном случае этих блоков: 0x76 = 118

А потом сами данные файлов.

thumb.png

Распакованные файлы: Resource.pak_u.rar

------------- updated -------------

Написал скрипт для распаковки:

; ----------------------------------------------------------------------------; AutoIt Version: 3.3.8.1; Author: OLEGator (icq 221221576); Script Function: Extract files from *.pak container. Game Re-Mission; Script Date: 08.06.2014; ----------------------------------------------------------------------------$sScriptName = "Re-Mission pak extrctor v.0.1"$sPak_File = FileOpenDialog ($sScriptName, @ScriptDir, "Файлы контейнера (*.pak)|Все файлы(*.*)")If $sPak_File = "" Then Exit ; Если ничего не выбрали, выход.$hPak_File = FileOpen ($sPak_File, 16) ; открываем файл для чтения в бинарном режимеFileSetPos ($hPak_File, 4, 0) ; встаём на позицию чтения количества файлов$iFilesNum = _BinaryToInt32 (FileRead ($hPak_File, 4)) ; читаем количество файловFileSetPos ($hPak_File, 12, 0) ; встаём на позицию чтения блоков с данными о файлахFor $i=1 To $iFilesNum$bDataBlock = FileRead ($hPak_File, 320) ; читаем текущий блок в память$sFileName = Binary ("")$sFilePath = Binary ("")$iPathPos = ""For $j=1 To 320$bCurByte = BinaryMid ($bDataBlock, $j, 1)If $bCurByte <> Binary ("0x00") Then$sFileName &= $bCurByteElse$iPathPos = $j ; запоминаем позицию, 0x00ExitLoopEndIfNext$sFileName = BinaryToString ($sFileName, 1)For $j=$iPathPos+1 To 320$bCurByte = BinaryMid ($bDataBlock, $j, 1)If $bCurByte <> Binary ("0x00") Then$sFilePath &= $bCurByteElseExitLoopEndIfNext$sFilePath = BinaryToString ($sFilePath, 1)$iOffset = _BinaryToInt32(BinaryMid ($bDataBlock, 265, 4))$iFileSize = _BinaryToInt32(BinaryMid ($bDataBlock, 281, 4));MsgBox (0, "", "Полное имя: "&$sFileName&@CRLF&"Путь к файлу: "&$sFilePath&@CRLF&"Смещение: "&$iOffset&@CRLF&"Размер: "&$iFileSize)$iOldPos = FileGetPos ($hPak_File) ; запоминаем позициюFileSetPos ($hPak_File, $iOffset, 0) ; встаём на позицию файла$bCurFileData = FileRead ($hPak_File, $iFileSize)$hExtractedFile = FileOpen ($sPak_File & "_u\"& $sFilePath, 2+8+16) ; открываем файл для запииси в бинарном режимеFileWrite ($hExtractedFile, $bCurFileData)FileClose ($hExtractedFile)FileSetPos ($hPak_File, $iOldPos, 0); возвращаемся на старую позициюNextMsgBox (0, $sScriptName, "Готово!" &@CRLF&"Извлечённые файлы в: "& $sPak_File & "_u\")Func _BinaryToInt32($Binary)Return BitAND(Int(Binary($Binary)), 0xFFFFFFFF)EndFunc

 

Re-Mission_pak_extrctor_v.0.1.rar (зеркало)

Изменено пользователем OLEGator84

Поделиться сообщением


Ссылка на сообщение

Обрати внимание на файлы с расширением stt, там не все так просто, ты их не целиком достаешь.

Поделиться сообщением


Ссылка на сообщение

Ну я так понял, это и есть субтитры диалогов.

Точняк в HEX видны диалоги на других языках

Изменено пользователем OLEGator84

Поделиться сообщением


Ссылка на сообщение

Хотя так, наверное, даже лучше, проще обратно запаковать будет, только надо будет учесть что эти файлы разбиты на блоки и соответственно двинуть офсеты двух следующих блоков.

Поделиться сообщением


Ссылка на сообщение

Пофиксил.

Re-Mission_pak_extrctor_v.0.2.rar (зеркало)

Вставил вот такой фрагмент:

If StringRight ($sFilePath, 4) = ".STT" Then$iFileSize2 = _BinaryToInt32(BinaryMid ($bDataBlock, 289, 4))$iFileSize3 = _BinaryToInt32(BinaryMid ($bDataBlock, 293, 4))$bCurFileData &= Binary ("0x0D0A") & FileRead ($hPak_File, $iFileSize2)$bCurFileData &= Binary ("0x0D0A") & FileRead ($hPak_File, $iFileSize3)EndIf

 

Изменено пользователем OLEGator84

Поделиться сообщением


Ссылка на сообщение

OLEGator84, большое спасибо за работу.

Однако я заметил, что при распаковке идёт отсечение имени файла и пути к нему в зависимости от длины заголовка, что как раз видно в WinHex. Скажем, world_26.msh должен лежать внутри архива в папке LEVEL026 (как и прочие файлы), но она обрезается до 026 и создаётся совершенно новая папка.

Поделиться сообщением


Ссылка на сообщение

Действительно, должно быть именно так, но в файле записано иначе: world_26.msh[0x00]026\world_26.msh

Я не знаю почему так.

Изменено пользователем OLEGator84

Поделиться сообщением


Ссылка на сообщение

Прошу прощения, что меня так долго не было.

Теперь очевидный вопрос: как запаковать изменённые файлы назад? Если файл имеет другой размер, то изменяется его смещение, а значит и смещения следующих за ним файлов. Так ведь? Я попытался было внедрить свой фрагмент самостоятельно, но это спровоцировало ошибку и последующий вылет; очевидно, RM.exe проверяет состояние ресурсных файлов. Но как-то же мне нужно тестировать шрифты, тестировать перевод, тестировать всё!

Допустим, запаковать TUTINTRO1.vtt с заменой в изначальный Resource.pak. Естественно, без перерисованных шрифтов (я как раз активно работаю над ними) прочитать субтитры будет невозможно, но в французской версии хотя бы должна отображаться латиница с закорючками - свидетельство того, что содержимое Resource.pak читается правильно.

http://myfolder.ru/files/41439153

Поделиться сообщением


Ссылка на сообщение

Можно просто дописать данные нового файла в конец, поправить смещение и размер в структуре.

Поделиться сообщением


Ссылка на сообщение

По скриншоту чем-то zip напомнило... Там т.ж. описания ф-лов со смещениями дублируются в начальном блоке...

Поделиться сообщением


Ссылка на сообщение
чем-то zip напомнило...

Между прочим. Об этом следовало сказать сразу, но тем не менее: в коренной папке игры не спроста находится файл zlib1.dll.

Zlib же основан на аглоритме DEFLATE - как и zip. Можно ли сделать из этого какие-либо выводы?

Поделиться сообщением


Ссылка на сообщение

1) Большинство программистов любят кофе;

2) 90% программ используют zip как контейнер состовляющих внутренних форматов;

3) Перед тем как анализировать файлы стоит поглядеть на используемые программные модули: в простейшем случае dll используемые программой через PE;

4) Лень двигатель человека, а человек дрова для прогресса;

5) Если хочешь чтобы что-то сделали хорошо, сделай это сам;

6) Самый точный показатель умственных способностей, отражет также количество прочтенных человеком книг;

7) Местных анпакеров интересует больше какой файл нужен, а не где скачать все версии игры т.к. они работают только через набор стандартных утилит, которые не хотят показывать другим;

8) На форуме нет закрепленной темы посвещенной quick bms;

etc

Поделиться сообщением


Ссылка на сообщение

 

AwsomeEpicCool, не надо мне тут мораль читать и демагогию разводить. Я могу редактировать нужные файлы и в hex. Я же спрашивал, как можно было бы сделать проще этого.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас популярно

    • 21 897
  • Продвигаемые темы

  • Последние сообщения

    • Приветствую!Точно,с русификацией Gruntmods Edition 1.6.7 беда,но я нашёл альтернативу!Мультиязыковой инсталятор dune 2000 c поддержкой современных ос с доп.компаниями,весит это чудо 1,30ГБ,озвучка ставится без проблем.Если правилами не запрещено дам ссылку на инсталлер.Называется “Dune2000_All_in_one_Installer” обновлён с месяц назад.
    • Я сначала попробывал в старом сейве не сработало, запустил новый, снёс пару стаков бандитов и варваров, взял квест у деревни на бандитов и как только начал с ними драться бесконечная загрузка началась, лог залил на яндекс диск.
      https://disk.yandex.ru/d/Kl_2pbWwshTngQ
    • Story of Seasons: Grand Bazaar Метки: Симулятор жизни, Симулятор фермы, Природа, Романтика, Сельское хозяйство Платформы: PC XS XONE PS5 PS4 SW2 SW Разработчик: Marvelous Издатель: XSEED Games, Marvelous Серия: Story of Seasons Дата выхода: 27 августа 2025 года Отзывы Steam: 612 отзывов, 93% положительных
    • Добавлен Свытч. Добавлен Свытч.
    • Вышел перевод для Switch.
    • к слову — я тоже, ищу статистику брака. если многие люди описывают одну и ту же проблему — в партии или модели явно есть брак.
    • Нет. Там просто надо аптеку было забрать, чтобы раненому челеку дать, ну и дальше пройти. Так около того места с аптекой, оказалась пещера c чем-то типа замка, и я так долго там простоял в раздумьях, какие же 4 символа нужно ввести, что ГГ просто помер прямо там, пришлось всё заново начинать.  Даже и не знаю, стоит ли прислушиваться к таким советам от человека, всё проходящего на “среднем” )  Но если ты всё это дело включишь, то и я тогда тоже.
    • Вот бы озвучку прикрутили к версии для SWITCH. Перевод там уже есть, правда на не пропечённой версии.
    • Не совсем, человек просто смотрел настройки. Ну пунктик у форумчанина. Я считаю, что неплохой — разбирается.
    • О да дерут, я сам решил переключить уровень на сложный и элитные вражины жопку конечно бывает надерают, вот с боссами еще не встречался, Кстати уровень сложности можно менять и настраивать прямо в игре, так что советую тебе не быть пусей на харде, а дернуть все ползунки на максимум. и врубить пенальти за смэртЬ.)   Да не, на легкой думаю будет довольно просто.)  
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×