Привет Гость!
Ты можешь:
Войти или зарегистрироваться

Забыл пароль
Регистрация
Меню сайта
Главная страница Каталог файлов Всё для моддинга Новости Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [174]
Уроки по переводу java игр [15]
Программы для компьютера [100]
Программы для телефона [82]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [9]
Мини-чат
Главная » Статьи » Уроки по модификации java

29.10.2012, 17:44

Как извлекают ресурсы из игр

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

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

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

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

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

Далее выделена строка, в которой и происходит расшифровка изображения (используется xor):


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

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

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

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


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


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

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

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

Ссылка на рассмотренную игру.
P.S. Данная статья приведена в целях ознакомления, декомпиляция и прочие действия могут быть запрещены производителями.

Автор статьи - wakko, вот его сайт.

Категория: Уроки по модификации java | Добавил: Tommy_M | Автор: wakko
Просмотров: 2589 | Комментарии: 4 | Рейтинг: 5.0/2

Всего комментариев: 4
Спам
ValekS   (31.10.2012 17:34)
Слишком муторно всё это... Да и знания java нужны...

Спам
ALDECOTAN   (30.10.2012 16:57)
Мда... опоздали выходит мы с хирургом насчет выхода статьи... Уже сделали)

Спам
Pggs   (29.10.2012 22:12)
она как бы стандартная (ну у меня да ) а так скачай называется Total Commander 7.5

Спам
Werewolf   (29.10.2012 17:54)
а где взять эту прогу?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

о, привет
Новинки
  • Файлы
  • Статьи
  • Новости

Last Day on Earth: Survival (+ моды)
Комментов: 5 | Загрузок: 1
GD for Edik
Комментов: 0 | Загрузок: 3
GD Electro
Комментов: 2 | Загрузок: 6
GD DYbuk 3 end
Комментов: 0 | Загрузок: 5
GD CuFru
Комментов: 0 | Загрузок: 5
GD Club Life
Комментов: 0 | Загрузок: 4
GD by DY!b!uk 1
Комментов: 0 | Загрузок: 8
GD by DY!b!uk 2
Комментов: 3 | Загрузок: 11
GD Bitalik Kovalev
Комментов: 0 | Загрузок: 10
GD 302 track
Комментов: 0 | Загрузок: 10

С наступающим короч)
Комментов: 1 | Просмотров: 295
Silent Evil - что же с релизом?
Комментов: 2 | Просмотров: 172
Alien Shooter на телефон! |Java| (Полное прохождение)
Комментов: 0 | Просмотров: 223
Duke Nukem Mobile |Java| Прохождение (2004)
Комментов: 0 | Просмотров: 226
ЛУЧШИЕ ИГРЫ ЗА ИСТОРИЮ JAVA #2 Дополнение
Комментов: 2 | Просмотров: 440
F.E.A.R. Mobile (Полное прохождение долгожданного мода + и небольшой обзор)
Комментов: 1 | Просмотров: 403
Nowhere 3D
Комментов: 10 | Просмотров: 816
Случайный мод

Мод на пипяк от Ampeross в стиле зомби!!
1910 210 4 4.0
Статистика
Онлайн всего: 17
Гостей: 16
Пользователей: 1
Пользователи
Гости сайта
romax9lahin
[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2018 | Хостинг от uCoz