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

Забыл пароль
Регистрация
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [102]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [10]
Мини-чат
Главная » Статьи » Уроки по модификации 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
Просмотров: 6353 | Комментарии: 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) [Материал]
<Redacted>

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

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

Rise Of Antares
Комментов: 1 | Загрузок: 43
РЕЗНЯ 3D: Not city of sins
Комментов: 0 | Загрузок: 100
Vice Multi-Player 0.1 beta RC 8-4-9-5
Комментов: 0 | Загрузок: 18
GTA San Andreas Beta 1
Комментов: 1 | Загрузок: 171
Galaxy Force 2 FINAL
Комментов: 42 | Загрузок: 1
Haunting abandoned mansion (color mod)
Комментов: 0 | Загрузок: 148
Deadly game Resident Evil 7 DLC
Комментов: 0 | Загрузок: 226
GTA SA FLY
Комментов: 0 | Загрузок: 281
GTA SA Mobile: Definitive Edition
Комментов: 1 | Загрузок: 492
QUAKE
Комментов: 51 | Загрузок: 432

Чат в Телеге
Комментов: 0 | Просмотров: 69
ODN Remake - скриншоты
Комментов: 0 | Просмотров: 80
O. D. N Remake
Комментов: 0 | Просмотров: 131
Новый сайт с мобильными загрузками - Oldfag
Комментов: 7 | Просмотров: 1490
Здорово и вечно 2 свободное человечество анонс номер два
Комментов: 9 | Просмотров: 1418
Дневник разработки "Шизофрения 3D" #2 - Концепция
Комментов: 2 | Просмотров: 1431
Дневник разработки "Шизофрения 3D" #1 - Общая инфа
Комментов: 0 | Просмотров: 1381
Случайный мод
Мод "Пятнашки" - по мультфильму. Вам надо передвигадь блоки, чтоб получилась картинка.
2398 361 10 3.8
Статистика
Онлайн всего: 11
Гостей: 11
Пользователей: 0
Пользователи
Гости сайта

[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2024 | Хостинг от uCoz