Перейти к содержимому
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. Я же спрашивал, как можно было бы сделать проще этого.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

    • Белоруссы рекламируют  GEM Capital как хороший способ финансирования российского игропрома.  GEM Capital — международная инвестиционная компания с офисами в Москве и Цюрихе, работающая на рынках прямых инвестиций, венчурного капитала и цифровых активов. Основным инвестором и управляющим партнером GEM Capital является Анатолий Палий. В портфеле компании около 20 проектов в Европе, США, Израиле и России (данные 2019 года).  2021 Инвестирование в игровую студию VEA Games 22 сентября 2021 года стало известно об инвестировании $2 млн в VEA Games. В игровую студию вложился фонд GEM Capital, который основал Анатолий Палий (ранее работал в PwC, а также в «дочке» «Газпрома» — «Газэнергосети»]. Привлеченное финансирование планируется направить на расширение штат сотрудников и ускорить процесс производства. Подробнее здесь. Инвестирование в игровую индустрию Unfrozen В августе 2021 года было объявлено о том, что инвестиционная компания GEM Capital вложила $1,7 млн в игровую студию Unfrozen. Средства пойдут на усиление команды. Детальные условия финансовой сделки не раскрываются, в том числе оценочная стоимость стартапа. Подробнее здесь. Инвестирование $1,4 млн в белорусскую студию разработки видеоигр Weappy В апреле 2021 года фонд GEM Capital, который основал Анатолий Палий (работал в PWC, а также в «дочке» «Газпрома» — «Газэнергосети»), вложила $1,4 млн в белорусскую студию разработки видеоигр Weappy. Привлеченные средства стартап потратит как на еще не анонсированные, но уже находящиеся в разработке проекты, так и в новые игры компании, работа над которыми должна начаться в ближайшее время. Подробнее здесь. https://gem.capital/
    • @Сильвер_79  "Как, например, буквально, на ламповых технологиях там смогли создать компактные ПК-пипбой?" - там действительно в конструкции использованы лампы. И для чего не очень понятно. Но основа это микроэлектроника. Слово чип - это микроэлектронная схема.   "Почему только ко 2 части игры появились вертолеты и это стало откровением для всех, включая Братство стали?" - ответить не смогу, потому что во вторую часть я не играл. Я играл в третью и сейчас решил попробовать первую. Поэтому мне и было интересно, что бы сериал смог погрузить меня в интересный проработанный мир. И стал действительно как тут говорят достойным воплощением компьютерной игры (какой правда не говорят, но я отталкиваюсь от третьей и первой). А сериал, к сожалению, даже не попытались подобным образом проработать. Просто раскидали по разным углам фансервис плохо связанный с собственным сериальным миром.   "Как с помощью одного чемоданчика ГЕКК можно создать оазис на ровном месте?" - вообще не совсем на ровном. Но вопрос действительно интересный. Я когда услышал это в игре, мне тоже стало это любопытно. Т.е. даны ответы на вопросы кто и для чего этим может пользоваться, но в первом знакомстве с Шэйди Сэндс не дают возможности углубиться именно вот в эти детали. Да, мне действительно хочется побольше про это узнать. Именно так это работает в игре, т.е. часть рассказали и это никак не конфликтует, а наоборот обогащает игровой мир, а часть сделали недосказанным. А теперь посмотрим на то, что вы называете моими претензиями и придирками на примере сериального Братства стали. Сериал Отвечает на вопросы кто такие послушники, какие у них ежедневные проблемы в братстве, какое у них отношение к самому братству, своим ближайшим братьям и вышестоящим ее членам, какая миссия у братства. Т.е. вот вы прямо сейчас ответили на вопросы, и не стали их делать чем-то недосказанным. Это не Гекк, который непонятно как работает, но понятно кто и что может с ним сделать. Тут вы нам прямо отвечаете из кого состоят послушники братьев стали. И поэтому сразу возникают вопросы. Вот вы нам прямо сейчас показываете одетого в отличную одежду, а не в какой-нибудь мешок, откормленного послушника, который что? В этой же самой серии мы узнаем, что никакой дисциплины в этом братстве стали нет. Но подождите, вы же только что заявили, что перед нами полувоенная организация с какой-то религиозной основой. Вот они подходят к логову яогая и? У нас тут послушник, который 30 лет готовился к Миссии на пустошах. А где его подготовка? Зачем его одевали и откармливали? Их послушать, так там их муштрой должны были подготовить именно к таким ситуациям. Где это все? Но, конечно, самый край - это поведение рыцаря. Это просто идиотизм от начала, когда находясь на задании захотел размяться и до его кончины. Тут плохо все и то, что он говорит, и то как он говорит, и то как он себя ведет. Т.е. вы нам Отвечаете что такое братсво стали, а потом показываете как ведут себя разные его представители. Один лентяй, готовый себя калечить, другой откормленный бесполезный увалень, третий неврастеник. И поведение ни одного из них никак не вписывается в тот мир, который вы нам рисуете. И вот у меня то, что вы называете придиркой, т.е. а что же это за дрянь вы тут показали?   Разницу не почувствовали? В сериале ответы есть, и все они дрянь, а в игре дана только часть ответов, и то, что рассказано согласовано с остальным миром.   "Чем вообще там кормилось то же самое Братство стали 100+ лет? Что-то в играх у них там ферм я не припомню. Там ведь дофига до чего докопаться можно." - обязательно посмотрю и как узнаю вам расскажу.   И, пожалуй, повторю еще раз. Для погружения в мир нужно взять то, что вам дают и это должно хорошо стыковаться как с тем, что авторы оставили проговоренным, так и с тем контекстом в который авторы это по сюжету поместили. Вот в сериле, просто на все наплевали, потому что там спиномозговое шоу про клоунов. А вот в игре, все что говорят стараются и это прям видно, что бы согласовывалось со всем остальным. Безусловно у игры есть игровые условности обусловленные, например, тем же техническим исполнением. Т.е. важные персы всегда стоят на одних и тех же местах, реплики одинаковые, но вот что бы двигаться по сюжету и погружаться в игровой мир нужны различные Последовательные шаги.   Причем у кино есть как свои плюсы, так и свои минусы. Потому что в кино нет переключения на геймлпейные моменты, когда имеешь дело с ограниченным ИИ, тут все можно сделать живым в рамках истории. Властелин колец имел бюджет в 93 млн. А этот серила 150 млн. Безусловно во властелине очень много Недосказанно, но что рассказано и показано отлично вписано и согласуется с приключениями наших геров, и например всегда ко всему есть какая-никакая подводка. А вот в этом дурацком сериале даже подводки нет. Вот у нас 3 объединенных убежища, где руководители участники внутренней программы. И за все 8 серий мы так и не узнали как было возможно вот эта вот завязка, которая дала пинок истории Люси. Я имею в виду открытие внутренних дверей в соседнее убежище, где по вашим собственным кадрам уже приличное время гниют трупы. Ну, вы же сами рассказываете, что все они отчитываются перед 31 убежищем о проведении эксперимента. Как этот совершенно идиотский мир у вас работает?
    • Не мешало бы на странице скачки русификатора сделать отметку о том, что с актуальной стим-версией русификатор не работает.
    • А чего вы тут празднуете?.. Игра теперь недоступна для покупки в 170 странах! Вот это победа… И тут закрадывается мысль: а что именно было целью всего этого действа? Исходя из того что получилось в итоге… (запрет продажи игры в более чем сотне стран)
    • Как откатить Fallout 4 до предыдущей версии Откат Fallout 4 Next Gen обновления до версии, работающей с F4SE, т.е. 1.10.163.0.х https://steamcommunity.com/sharedfiles/filedetails/?id=3232234143
    • Встройка 5600G тянет Re4 в ФулHD в 30fps, Киберпук, хант шоу даун, это че я успел потестить. 5700G еще лучше, но не прям сильно.
    • Подскажите, а шрифт как то можно увеличить? А то с современными разрешениями цифры и буквы очень мелкие.
    • У меня, кстати, на 2070 супер (ну и прочем железе такого же уровня) уже не идеально играет на максимальных, ну тип норм/сойдет но фпс падает бывает. У друга на 3070-ти, уже в 2К разрешении, тоже не прям идеально, тоже бывает падает фпс. Мы в коопе проходим. Например бац заклинанием по площади, чтоб всё что взрывается взрывалось и враги горели летним шашлыком на природе — минус фпс на пару секунд. Ну и просто на некоторых локациях чуток падает. Играть, конечно, совершенно не мешает и если б не дурацкая привычка оставлять фпс-метр в стиме включенным, то и не все падения фпс замечал бы.
    • “Хотели с Мишей побиться яйцами и померятся куличами и по мужски провести этот день..”!
  • Изменения статусов

  • Лучшие авторы


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

×