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

Забыл пароль
Регистрация
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [175]
Уроки по переводу java игр [15]
Программы для компьютера [102]
Программы для телефона [85]
Модификация смартфонных игр [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
Просмотров: 5015 | Комментарии: 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>

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

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

Нагибатор 3D (Repressor) Prefinal
Комментов: 27 | Загрузок: 2666
Parkour 3d from quantum
Комментов: 0 | Загрузок: 29
Micro Team fortress pre-alpha
Комментов: 2 | Загрузок: 811
Evil House - По мотивам Resident Evil Village
Комментов: 1 | Загрузок: 827
ZOA 3D Билд 7621
Комментов: 10 | Загрузок: 1051
Большой Шлепа
Комментов: 3 | Загрузок: 644
Хроники Хаоса
Комментов: 1 | Загрузок: 1182
Deep 3D Submarine Odyssey sound MOD
Комментов: 0 | Загрузок: 89
Crazy Chicken: DeluXe
Комментов: 0 | Загрузок: 534
The long dark mobile
Комментов: 7 | Загрузок: 187

Здорово и вечно свободное человечество
Комментов: 3 | Просмотров: 151
Silent evill quantum
Комментов: 5 | Просмотров: 163
PES 5 RPL
Комментов: 26 | Просмотров: 517
Evil House - По мотивам Resident Evil Village
Комментов: 5 | Просмотров: 510
S.T.A.L.K.E.R. Mobile part_2
Комментов: 24 | Просмотров: 1259
Lost in taiga 3d: Winter survival
Комментов: 7 | Просмотров: 1097
Comcraft Remastered Version
Комментов: 1 | Просмотров: 1127
Случайный мод
Мод на Пипяки!!!
2168 505 7 4.6
Статистика
Онлайн всего: 4
Гостей: 3
Пользователей: 1
Пользователи
Гости сайта
BobbyScoms
[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2021 | Хостинг от uCoz