Jump to content
СофтФорум - всё о компьютерах и не только

Распаковка нестандартных типов архивов


Deadmаn
 Share

Recommended Posts

Добрый день.

Необходимо решить следующую задачу:

Дано: архив формата GRP,

примерная информация о контенте (например, что архив содержит ZIP-архив ( -ы), в который упакованы сжатые текстуры в форматах DXT-1\DXT-5)

Задача-минимум: просканировать архив и составить файл с описанием структуры каталогов (дерево папок). Т.е. должно получиться что-то вроде :

\game folder\game.grp\textures\2056\low\m4a1_silenced.dds

\game folder\game.grp\...

Задача максимум: любыми возможными способами извлечь данные файлы.

Если кто-то знает, при помощи какой программы можно это осуществить - прошу помочь, хотя бы названием программы. Поясню ситуацию. Имеется игра, ресурсы которой упакованы в такой архив, возможно, шифрованный. Есть точная информация, в каком архиве какого типа файлы лежат и их расширения. SDK для игры не выходил. Для прошлой части игры была утилита по распаковыванию таких архивов. Она представляла собой файл размером меньше 1-го МБ. К новой части игры данная утилита не подходит, т.к. при запуске вполне логично выдает ошибку: "Не найдена точка входа в процедуру..." Разработчиков игры уже не существует (фирма распалась). Помощи от них - точно не будет.

Есть ли вероятность того, что можно будет хотя бы прочитать имена файлов, чтобы подложить их в папку игры (игра хавает файлы из папок текстурс\саундс\скриптс\моделс и т.д. и добавляет их в кэш, после чего использует их вместо одноименных из архива game.grp)?

Я слышал, есть такие программы, которые позволяют во время игры грабить модели. Они прямо перехватывают каким-то образом адреса моделей и текстур, между игрой и директ-иксом, и затем сами отстраивают эти модели и накладывают текстуры уже внутри программы. Качество результирующего объекта получается ни к черту, т.к. проги такие универсальны и ресурсы с разных игр обрабатывают по-разному. Но суть в самом методе - они ведь теоретически должны грабить в первую очередь имена моделей\текстур. Может быть есть какой-то смысл использовать этот метод?

Или есть более простое решение данной задачи?

Всем ответившим - заранее, спасибо.

Link to comment
Share on other sites

Спасибо за ссылки, сейчас буду изучать.

Проблема в том, что есть, например, файлы-архивы GRP из игры Star Craft, из игры Duke Nukem :) , из игры Xenus BP и т.д. Все это GRP, но, чтобы их "открыть" применяют разные утилиты. Не существует ли какой-то общей методики?

Сейчас буду изучать мат.часть по файлам GRP. Если пойму, что написал только что чушь - пост потру.

Еще раз спасибо за быстрый ответ!

Link to comment
Share on other sites

1. Пост вы не потрете, прав недостаточно. :)

2. Вот для более точного ответа надо было бы указать название игры.

Link to comment
Share on other sites

1. Пост вы не потрете, прав недостаточно. :)

2. Вот для более точного ответа надо было бы указать название игры.

Ой, это плохо. Просто боюсь чушь написать.

Игра Xenus 2: Белое золото.

Сейчас посмотрел по Вашим ссылкам. К сожалению, ничего особо нового. То, что это не групповой файл ОС - и так понятно. Соответствующая ошибка выпадает при открытии файла двойным щелчком.

Стар-крафтовская утилита тоже выдает ошибку.

Но некий прогресс есть. Сейчас я скачал новый Dragon Unpacker и он смог HyperRipper'ом найти несколько (9) WAV-файлов в архиве Sounds.grp. Как я понимаю, это значит, что архив нешифрованный\не защищен паролем. Т.е. теоретически подходы должны быть. Вот я знаю, например, что в sounds.grp лежат файлы формата *.OGG, которые игра достает и проигрывает в режиме реального времени - мало вероятно, что в таком случае стали бы прибегать к какой-то там методике шифрования файлов\имен файлов. Хотя не могу утверждать. Dragon пока что (5% сканирования) никаких OGG-файлов не нашел.

Link to comment
Share on other sites

Вам собственно для каких целей нужны ресурсы этих архивов? Практически всё уже выдрано и если очень захотеть можно найти в сети. Гугль в помощь.

Edited by edde
Link to comment
Share on other sites

В более раннем посте я написал об этом. Мне требуется узнать имена файлов и папки в которых они лежат (в архиве). Узнав это, я смогу подсунуть файлы (свои) с соответствующими именами в папки Textures\sounds, после чего движок начнет считывать файлы именно из этих папок, а не из архива GRP.

Относительно того, что "выдрано" - у меня нет такой информации. Официальный SDK не выходил (и не выйдет - украинской компании Deep Shadows уже не существует). Никаких репаков не было. Программ для извлечения - не находил. Из возможных игровых файлов находил только OST (музыку), записанную штатными средствами прямо из игры. Выкладывали, по-моему, на playground'е.

Я сам непосредственно не работаю над модом, но хотел бы помочь людям, которые этим занимаются. Есть много желающих сделать что-то: свои текстуры\модели, написать квесты, добавить изменить оружие. Самому мне это не особо интересно, но было бы неплохо посмотреть на конечный результат, а для этого надо раскопать ресурсы игры. До недавних пор, несмотря на запрет издателя, мы все же ожидали SDK, а я лично писал разработчикам, чтобы хотя бы составили для фанатов датовский файл-лист с именами файлов\папок. Но теперь уже писать некому и надеяться не на что. Надо самим что-то пробовать.

Относительно SDK первой части (Xenus BP) - он абсолютно несовместим, т.к. как и положено SDK, он использует библиотеки и исполняемый файл конкретной игры, которые разумеется для этих двух игр разные. Если под "практически все" предполагались материалы Xenus 1(!!!) Boiling Point - то меня они не интересуют. Установлен рабочий СДК, который правит что угодно и аналогично все позволяет извлечь. Вопрос именно про White Gold.

Или я плохо ищу, или еще НИ ОДИН файл не удалось извлечь.

P.S. Гиппер-риппер позволил из архива gf_sounds.grp извлечь 14 файлов в общей сложности. Скорее всего, это OGG файлы, которые он распознал как Wave и как следствие - они некорректно воспроизводятся. На одном из них мне удалось среди сильного шума услышать звук проезжающей мимо машины. Другого прогресса пока нет.

Link to comment
Share on other sites

Ну в таком случае вам помимо распаковщика еще и упаковщик нужен, то есть две программы :) не думаю что упаковщик вы найдете в свободном доступе, разве что на специализированных по такой тематике форумах вам что нибудь подскажут.

Link to comment
Share on other sites

В том-то и дело, что упаковщик НЕ НУЖЕН! Игра автоматически обрабатывает подложенные файлы. Происходит это так:

Создается, например, текстура --- кладется в папку Textures --- Запускается игра --- Появляется надпись: "DirectX 9: Please wait... Convertin textures 1%" --- Когда доходит до 100%, игра спокойно запускается --- Вместо текстуры из архива GRP мы видим нашу текстуру, которую положили в папку Textures.

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

Но, т.к., разумеется, узнать только название текстуры не хватит для того, чтобы создать свою и заменить ей оригинал, было бы удобнее все-таки извлечь. Иначе придется адаптировать их методом тыка и наблюдать за кривым наложением. С остальными материалами работы поменьше, но и ценность они меньшую имеют.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...