Программа для извлечения из компьютерных игр. Как извлекают ресурсы из игр

03.05.2019

Многие из вас, вероятно, сталкивались с проблемой распаковки игровых архивов. Возможно, вам требовались какие-либо звуковые файлы, текстуры, модели и т.д. Но удавалось распаковать и извлечь эти файлы далеко не всегда. Да, некоторые разработчики особо не заморачиваются над запаковкой ресурсов, размещая файлы в "псевдоархивах". Типичными расширениями таких архивов являются.pak, .pk3, .pk и иже с ними. Но особые расширения (.bin, .big, .cpr, .dta...) вскрыть стандартным WinRAR"ом не удастся - специально для этих целей и создаются "программы-распаковщики", о коих и пойдет речь.

Первой программой, которая попала ко мне в руки, стала Dragon unpacker за авторством Александре Девиллерса. Отличают программку относительно небольшой размер и просто огромная база поддерживаемых форматов данных. Ниже я расположил полный список форматов, которые распознает софтинка, дабы вы полностью оценили ее глобальность.

Итак, программа знает архивы: .007, .adf, .art, .awf, .bag, .bar, .big, .bin, .bkf, .box, .bun, .ccx, .cpr, .crf, .dat, .dni, .drs, .dta, .far, .ffl, .gjd, .gob, .gro, .grp, .gzp, .hal, .hog, .hpi, .hrf, .img, .mgz, .mix, .mn3, .mob, .mtf, .nob, .pac, .pak, .pbo, .pck, .pff, pk3, .pkr, .pod, .prm, .res, .rez, .rfz, .rod, .rvi, .rvm, .rvr, .sad, .sak, .sdt, .sin, .slf, .snd, .sni, .sqh, .ssa, .stuff, .syn, .tex, .tlk, .uac, .ufo, .ums, .umx, .utx, .vl2, .vol, .vp, .wad, .x13, .xcr, .xrs, .za, .zfs

Ко всему прочему в "драконе" имеется очень интересный модуль, позволяющий распаковывать неизвестные типы архивов. Дополнение просто сканирует файл на наличие программного кода картинок, видео, моделей, аудио т.п. А вот техническое исполнение оказалось не столь радужным, как все остальное. Dragon unpacker очень любит подвисать, слишком медленно работает с большими архивами и загружает процессор похлеще антивируса Касперского! Но на фоне явных достоинств эти проблемы кажутся мелочами. Определенно лучшая программа для обработки запакованных игровых данных. Ко всему прочему, Unpacker еще и полностью бесплатен!

А это уже скорее не программа, а кодек, позволяющий проигрывать и создавать файлы с расширением.bik. Данный видеоформат широко распространен в игровой индустрии благодаря своей компактности, надежности и удобству. Посудите сами - файлы.bik по качеству не уступают видеозаписям без сжатия, а размер конечного файла в разы меньше, чем у "чистого" ролика. Также с помощью BINK возможно создание самовоспроизводящихся.exe фильмов, для просмотра которых не потребуется даже видеопроигрыватель. Конечно, не обошлось без багов, которые иногда мешают работе (например, программа порой сворачивается или закрывается по своему желанию), но разработчики клянутся, что в следующей версии все будет исправлено. Поверим на слово.

Самый популярный ресурс в архивах игры - это музыка и звуки. Чего уж тут спорить, саундтреки некоторых продуктов успешно продаются на отдельных носителях и так же успешно покупаются. Ну а если ваши доходы не позволяют вам выложить каких-нибудь 50 долларов за пластинку со звуковой дорожкой, например от GTA: San Andreas, то Game Audio Player pro - специально для вас. В отличие от предыдущего софта, программа не может выдрать из игры какую-либо графику, карту или что-нибудь в этом роде, но успешно проигрывает почти любые игровые музыкальные форматы. Надо сказать, что в начальном списке поддерживаемых форматом уже можно найти декодер ко всем более-менее значимым проектам, ну а если вы хотите проиграть файлы из неизвестных софту игр, то добро пожаловать на официальный сайт проекта, где вольготно расположилась ну просто необъятная коллекция всевозможных дополнительных плагинов и модификаций. В общем, если вы настоящий меломан и хотите, чтобы в плейлисте вашего Winamp-a постоянно крутились любимые игровые темы, то обязательно скачайте эту программку.

Resource Hacker относится к разряду программ для девелоперов. Дело в том, что программа не просто извлекает из архивов файлы, она еще и показывает нам ее программный код. Хотите просмотреть исходники какой-нибудь софтинки - всегда пожалуйста. Залезть внутрь DLL"ки - не вопрос. А теперь внимание, Resource Hacker умеет открывать ЛЮБОЙ тип архивов и ЛЮБОЙ тип файлов. Меня, если честно, поначалу немного смутило то, что настолько универсальная и полезная программа является полностью бесплатной, но магическое слово FreeWare при загрузке развеяло мои сомнения.

Gcf Scape предназначен для всесторонней работы с запакованным кэшем популярной программы Steam. Несмотря на свою исключительно узкую специализацию, софтинка прекрасно справляется со своими задачами. .gcf Scape может производить с файлами Steam"a следующие манипуляции: - распаковывать кэш;
- инсталлировать игры из кэша без использования самого сервиса Steam;
- запаковывать папки, присваивая им расширение.gcf.
В общем, программа весьма полезная и безглючная.

Очень часто производители игр прячут свои игровые ресурсы (изображения, музыка, текст) от свободного доступа. Для вытаскивания этих ресурсов требуется написать распаковщик (unpacker). Для перевода игр также требуется написать упаковщик (packer), что гораздо сложнее. Существуют также универсальные программы для извлечения ресурсов, но во многих случаях они бесполезны. В этой статье я расскажу как создаются программы для работы с шифрованными ресурсами (на примере java ME игры «Some Allies And Enemies Sword»).

Процесс расшифровки

После открытия архива с игрой и первичного осмотра сразу понятно, что ресурсы хранятся в каталоге «sprite», в шифрованном виде. У всех этих файлов понятные имена, что дает возможность провести поиск этих имен в класс-файлах:

После просмотра результатов нашлась строка в классе «x» с нужным именем:

Из строки видно, что нужен класс k, которому передается имя ресурса в качестве параметра string. Открыв класс «k», найдя нужный метод и просмотрев его, понятно, что именно в этом методе происходит загрузка, расшифровка и создание изображений из ресурсов (abyte0 - содержит в себе PNG и IHDR):


Чтобы найти эту самую строку расшифровки, потребовалось воссоздать загрузку ресурсов, для этого пара строчек кода (а точнее, весь метод) скопировалась в IDE с некоторыми поправками:

В режиме отладки проверяется чтение ресурсов с последующим сравнением в HEX редакторе:

Теперь немного о структуре файла: нужная часть начинается с символов «SOFG», при чтении проверяется, что именно эти символы - начало блока с изображениями. Далее 4 байта это шифр, с помощью которого кодируются изображения, в каждом файле он свой. Далее 1 байт - количество изображений в файле, далее - 4 байта длина изображения и само изображение без «PNG» (на скрине - выделенная область).

Когда структура разобрана, дописывается программа-распаковщик и извлекаются изображения:





Теперь необходимо написать упаковщик файлов, что намного сложнее. Я написал его отдельной программой, так как это быстрее, но требуется больше «ручной работы» в HEX редакторе. Принцип работы упаковщика: выбираются файлы, снова шифруются и соединяются.




И в конце сравниваются исходный файл и полученный при упаковке, чтобы не было в них различий. Для этого в Total Commander’е есть удобный инструмент - сравнение файлов:

На этом техническая работа закончена, осталось только перевести игру. Примечание: файл touxiang.rar немного отличался от всех остальных, для него пришлось доработать распаковщик, как оказалось, в этом файле изображения игровых персонажей.

Заключение: рассмотренная в игре «защита» довольно легкая, таких, к сожалению, мало. В играх от крупных производителей все сложнее, например, есть индексный файл, в котором указывается информация о расположении ресурсов в игре, которые, в свою очередь, хорошо спрятаны. Плюс декомпилированные классы читать и понимать очень сложно, для этого нужен хороший программист.

» — базой соответствия файлов, статей и игр, помогающей ориентироваться в разнообразии представленных на сайте материалов.

Графика, саундтреки (музыка), звуки из игр

Графика из Ascendancy

Поклонникам игры и тем, кто делает изометрические компьютерные игрухи должно понравиться:)

Размер: 0 KB


Графика из HOMM 3. Часть 1

Первая часть графики из Heroes of Might and Magic 3

В составе:

1. Артефакты
2. Замки на карте
3. Курсоры
4. Герои
5. Монстры
6. Тайлы (поверхности земли воды и пр)

Изображения скомпанованы в анимированные GIF файлы.

Размер: 0 KB


Графика из HOMM 3. Часть 2

Вторая часть графики. Здесь — все объекты, размещаемые на картах.

В общей сложности — 717 анимированных GIF файлов.

Размер: 0 KB


Еще графика из Allods 2

Еще один пак с графикой из Allods 2.

На этот раз в составе — все курсоры, часть объектов с карты и целая гора (402 штуки) предметов инвентаря в формате BMP.

Размер: 0 KB


Карты из Вангеров (Vangers)

Набор карт трех миров Вангеров: Фострала, Глоркса и Некроса. Все - формата 200x1600px.

Размер: 0 KB


Персонажи из Allods 2

Полная анимация всех персонажей (героев, монстров и нейтральных) из игры Allods 2.

Все собрано в анимированные GIF файлы. Каждый файл — кадры полной анимации (ходьба, удары, смерть и пр.) отдельного персонажа.

Размер: 0 KB


Предметы из Вангеров (Vangers)

Набор предметов инвентаря из Вангеров.

В общей сложности — 78 изображений BMP самого разного размера.

Размер: 0 KB


Предметы инвентаря из Hellfire

Все предметы инвентаря из Hellfire: бутыльки, оружие, броня и все прочее...

Все в виде BMP файлов.

Размер: 0 KB


Тайлы из Allods 2

Все понятно из названия — в архиве собраны все тайлы из игры Allods 2.

Всего — 52 BMP файла.

Размер: 0 KB


Тайлы из Imperialism

Набор тайлов из игры Imperialism.

50 изображений BMP формата 64x64px.

Размер: 0 KB


Тайлы из Warcraft 2000

Набор тайлов (текстур земли, воды, гор и прочего) из Warcraft 2000. Текстуры совмещены в одну здоровую версикальную полосу формата 32x3104px.

Размер: 0 KB

Утилиты и универсальные распаковщики

DirectX Texture Tool v4.08

Программа из пакета DirectX. Предназначена для создания/редактирования/конвертации изображений формата DDS.

Размер: 0 KB


Dragon UnPACKer v5.2.0b

Утилита, поддерживающая распаковку архивов из более чем ста сорока игр. Типа, «Универсальный распаковщик». Насколько он универсален — предстоит определить вам:)

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

Размер: 0 KB


Game Audio Player v1.32

Очень мощное (а может, и лучшее) средство для выдирания музыки и звуковых эффектов из более чем 300 игр.

Размер: 0 KB


Game File Explorer v1.32

Очередной «универсальный» распаковщик. Предположительно, поддерживает около 60 игр.

Размер: 0 KB


Hiew v6.1

Один из самых удобных шестнадцатиричных редакторов.

Не самая новая, но бесплатная версия.

Размер: 0 KB


Magic Extractor v1.9.1

Распаковщик, поддерживающий более чем 170 игр.

Возможно, один из наиболее мощных и функциональных.

Размер: 0 KB


Mr.Ripper 0.20 alpha 6

Плагин К FAR"у для выдирания различных файлов из недр других файлов.

Размер: 0 KB


MultiEx Commander v4.5.1

Довольно продвинутый универсальный распаковщик игровых архивов. Поддерживает титаническое количество форматов. Что-то около пятисот.

Размер: 0 KB


Mve2Avi v2.31

Программа для конвертации видео формата MVE в AVI. Есть возможность сохранения в виде последовательности изображений формата BMP или GIF.

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


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

Flash
Чаще всего появляется желание вытащить графику именно из Flash игр, по понятным причинам (красивая авторская графика, оригинальный стиль, плавная анимация etc..).

Sothink SWF Decompiler
Я долго мучал всякие стремные программки, пока не нашел нормального декомпилятора, имя ему - Sothink SWF Decompiler .

Программа платная и стоит $79.99, но есть триал 30-дневка, а еще можно получить версию 5.5 нелегальным путем. (За ключом в ЛС, я сотни лет гуглил).

На самом деле Sothink SWF Decompiler очень многофункционален. Им можно дергать абсолютно все ресурсы SWF-файла, вплоть до кода. Также имеется экпорт во FLA-исходник, но использовать его за основу игры у вас не получится (но я, например, делал переводы).
Итак, приступим к практике. Что мы имеем? SWF файл и запущенный декомпилятор.

Интерфес программы выглядит так:


Справа - панель всех ресурсов флешки, как видно там же отображаются фрэймы, AC, кнопки, музыка и прочее…
Но вы ведь пришли сюда не на скриншоты любоваться, так? Приступим к делу.

Растровая графика
Поищем глазами пункт Image , кликнем по папке и увидим превьюшки всех файлов растровой графики, задействованных в игре.
Отмечаем нужные галочкой и жмем распаковать.
Открывается окно детальной настройки, выбираем нужные и радуемся спрайтам в нужной вам папочке.

Векторная графика
Но что делать, если графика в игре - векторная, что очень типично для флэш?
Тут придется попотеть и обзавестись Adobe Flash нужной вам версии.

В Sothink SWF Decompiler векторая графика хранится в папках Sprite и Shape соответственно. Извлечь её можно в трех форматах: SWF, GLS, FLA. Первые два нам не подходят, потому что нам надо получить спрайт в стандартном формате растровой графики. Жмем FLA, ждем экспорта и открываем полученный *FLA файл в Adobe Flash. Меняем в спрайте то, что нужно поменять (все, что угодно, зависит целиком от вас). И жмем File-Export-Image, если спрайт статичный и File-Export-Movie, если анимация. Для анимации необходимо выбрать любой из форматов с припиской Sequence, что означает разложить покадрово.

P.S.: Есть еще один вариант (без Adobe Flash) - делать скриншоты из превью (в программе есть спец.кнопочка над превью-окошком, для сохранения скриншота).

С графикой во флеш разобрались, с остальным все просто (точно так же, как с растровой графикой).

3D игры
В 3D играх графика предоставлена 3D-моделями и текстурами, наложенными на них. Модели нас не интересуют, а вот текстурки с радостью выдернем.

Вариант0 - свободнолежащие ресурсы.

Иногда разработчики настолько ленивы, что совсем не прячут игровых ресурсов, рассчитывая на честность или нубство пользователя. Но мы-то хитрее и всегда поковыряем папку с игрой.
Итак, открываем мы папку и о боже! TGA текстуры лежат и ждут, пока ты их оттуда заберешь. Такое бывает, но редко. (например RE4). Также, иногда разрабы просто меняют разрешение функицей «переименовать», попробуйте пооткрывать подозрительные файлы различными редакторами.
Варианты, написанные выше это редкие исключения. Чаще всего разработчики используют свои форматы/технологии, тогда нужно поискать специальные программы для того, чтобы их сконвертировать в нормальный формат.

Вариант 1 - дергать на лету.
Программ, умеющих такое, немного. Я использую TexMod .
TexMod также позволяет делать моды, заменяющие текстуры в игре, но статья не об этом.
Итак, начнем.
Запускаем программу, переключаемся на вкладку «Logging Mode»
В окне «Target Application» указываем при помощи опции Browse путь к файлу игры.
Примерно так:

В «Output Folder» указываем паку, куда будут сохраняться текстуры. Указываем формат (я рекомендую TGA, т.к. маленькая степень сжатия и поддержка прозрачности).
Жмем «Run» …
Запускается игра в режиме отлова, листаем текстуры кнопками Num+ и Num-, жмем назначенную кнопку, чтобы текстура сохранилась в нужном вам формате в нужной вам папке (превью отображается в левом верхнем углу, причем, если поставить галочку в Replace Texture, то выбранная вами текстура в игре заменится зеленым). Всё очень просто и удобно.

Вариант 2 - анпакеры.
Есть такая категория программ, называющихся Unpackers. Они пишутся как раз для того, чтобы потрошить игровые архивы. Анпакеры бывают универсальные или специально заточенные под определенные игры.
Универсальные
Начнем с универсальных. К таким относится:

WinRAR, 7-Zip, PKZip, PAKScape…
Смешно, но иногда разработчики очень ленивы и пакуют ресурсы в обычные архивы(ZIP,7-ZIP, RAR...) и тупо меняют расширение функцией «Переименовать». Новое разрешение может быть любым, например, PAK(HOMM, Quake).
P.S.: Есть еще более ленивые разработчики, о которых сказано в варианте 0.

Dragon Unpacker
Это лучший на мой взгляд универсальный анпакер, он поддерживает действительно огромное кол-во игр.
(Полный список можно посмотреть )
Я почти уверен, что вы нашли нужную вам игру в списке, но делать, если нет?
Запускаем Dragon Unpacker, жмем Ctrl-H . Ловим такое окошко:

Во вкладке Formats выбираем нужные форматы (кроме графики дергает и музыку и видео), во вкладке Search выбираем нужный файл и жмем Search . После окончания поиска, если что-то найдется, жмем ОК, выделяем нужные файлы, затем клик правой кнопкой и выбираем пункт Extract to.. и указываем нужную папку. Готово.
Скачать последнюю версию Dragon Unpacker можно . (кстати, исходный код тоже доступен для скачивания)

Если универсальные анпакеры не помогают, то ищите на тематических форумах программы для вскрытия ресурсов.
Например, на http://www.extractor.ru/ или на фан-сайтах нужной игры..

Другие платформы

J2ME
Самая обычная телефонная ява. Сама игра состоит из JAD и JAR файлов. Первый - тупо установочник и телефоны его (почти все, кроме самсунгов) не требуют. JAR - сама игра, ничто иное как переименованный zip-архив.
Раньше ресурсы совсем не паковались, но теперь ведущие разрабы усиленно их прячут. Скажу сразу, что игры от Gameloft (обычно графика у них довольно красивая) потрошить ни у кого не получалось. Легче всего дергать ресурсы из игр от китайских разработчиков и любителей, в их потрошении помогает великий и могучий вин-рар.

HALO
Но есть и хитрозапакованные ресурсы, вытащить их нам поможет Halo. (вот ссылка на оф. страницу программы, кто найдет ссылку для скачивания последней версии, буду благодарен).
Для запуска Halo нужна ява-машина.

Итак, запускаем, жмем Ctrl-N выбираем JAR-файл, переключаемся на вкладку Resource Explorer , жмем Extract all images . Программа ищет графику и музыку во всех файлах в архиве.
После окончания распаковки появляются вкладки с содержимым всех файлов архива, там ищем нужные спрайты и посредством правого клика вытаскиваем их в нужную папку.


Android
Еще одна мобильная платформа, но гораздо мощнее, поэтому ресурсы из игр на адроиде более привлекательны, чем на яве.
Никто не придумывает велосипед заного, поэтому APK=ZIP. Распаковываем в отдельную папочку и ковыряем папки res и assets , там и зарыта графика (а музыка в raw ).
Почти все разработчики больше никак не пакуют ресурсы (помимо Gameloft и EA).

Но это в небольших играх, все большие игры требуют кэш. Т.е. APK - тупо установочник, а все ресурсы качаются с инета через вай-фай. Этим можно воспользоваться. Обычно кэш качается на флеш-карту и достаточно после установки просто поковырять новую папочку с кэшем. Но если кэш ставиться на телефон, придется приложить усилия. Необходимо получить root-права к своему смартфону и программой root-explorer (или подобной) ковыряем память телефона.
Внимание! Ничего не удаляйте и не изменяйте, а то запорите прошивку к чертям.

iOS
К сожалению, я не имею макбука и всего того ПО, что мне бы помогло разобраться в структуре игры на iOS, но иногда до ресурсов можно добраться 7-Zipом -)

Похожие статьи