Привет Гость!
Ты можешь:
Войти или зарегистрироваться
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [105]
Программы для телефона [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
Просмотров: 6564 | Комментарии: 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>

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

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

STALCER 3-D
Комментов: 5 | Загрузок: 96
Rise Of Antares
Комментов: 1 | Загрузок: 115
РЕЗНЯ 3D: Not city of sins
Комментов: 0 | Загрузок: 223
Vice Multi-Player 0.1 beta RC 8-4-9-5
Комментов: 0 | Загрузок: 83
GTA San Andreas Beta 1
Комментов: 1 | Загрузок: 277
Galaxy Force 2 FINAL
Комментов: 47 | Загрузок: 1
Haunting abandoned mansion (color mod)
Комментов: 0 | Загрузок: 208
Deadly game Resident Evil 7 DLC
Комментов: 0 | Загрузок: 297
GTA SA FLY
Комментов: 0 | Загрузок: 376
GTA SA Mobile: Definitive Edition
Комментов: 1 | Загрузок: 616

Открыт код Stalker Mobile 3D
Комментов: 1 | Просмотров: 135
ГДЕ JAVA- ТУСОВКА? - ТУТ!
Комментов: 0 | Просмотров: 310
Чат в Телеге
Комментов: 0 | Просмотров: 519
ODN Remake - скриншоты
Комментов: 1 | Просмотров: 485
O. D. N Remake
Комментов: 0 | Просмотров: 574
Новый сайт с мобильными загрузками - Oldfag
Комментов: 7 | Просмотров: 1891
Здорово и вечно 2 свободное человечество анонс номер два
Комментов: 9 | Просмотров: 1801
Случайный мод
3499 539 2 3.7
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Пользователи
Гости сайта

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