Привет Гость!
Ты можешь:
Войти или зарегистрироваться
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [106]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [36]
Уроки по модификации ПК игр [9]
Мини-чат
Главная » Статьи » Уроки по модификации java

09.06.2013, 14:58

Меняем цвет графическим примитивам в бинарных файлах *.class

В этой статье я хочу поведать людям о том, как сменить цвет любого графического примитива в Java классе, но на этот раз для примера возьму мобильную игру (Java ME) Gish reloaded.

Попробуем сменить цвет брызг в желтой воде на свой.
Первое, что надо сделать — это узнать код цвета элемента в RGB.
Для этого запустим мидлет в KEmulator. Кликаем на вкладку «Вид» и нажимаем «Инфо».
Играем до момента, когда увидите на экране нужный элемент, у нас это брызги. Далее переходим во вкладку «Мидлет» и жмем «Ожидание».
В итоге должно получиться что-то вроде этого:


Цвет в 16 CC = 0xffaaa586
Теперь декомпилируем все классы и ищем строку «aaa586».
Находим в k.class
Код
g1.setColor(i13 != 0?i13 != 1?0xffaaa586:0xffb9b926:0xff7a6c5a);


Метод setColor класса Graphics устанавливает цвет графическим примитивам(прямоугольники, круги, треугольники и т.д.) и тексту. Тут мы видим три значения для наших брызг.
Я особо не буду заморачиваться по этому поводу и все три значения сделаю равными 0x5f6ffe.
Для простой модификации, вроде смены значений, я использую дизассемблер Class Construction Kit.
Установка цвета в классе происходит в методе private void b(Graphics g1)
Значит находим вызов setColor(int arg0) в этом методе. Строка 5114


Выше видим наши значения(опкод ldc) в привычной нам десятичной системе счисления


-8754086 = 0xffffffffff7a6c5a
-4605658 = 0xffffffffffb9b926
-5593722 = 0xffffffffffaaa586

Ой, а как так получилось, мы ведь знаем, что там должно быть 0xff7a6c5a вместо 0xffffffffff7a6c5a ?
Все очень просто! При компиляции все числа переводятся в беззнаковый формат(unsigned int)
Можете почитать как это делается здесь.
В принципе, если Ваш декомпилятор не имеет функции представления чисел в 16 СС, то Вы спокойно можете найти нужный цвет переведя его в знаковое целое число.
Далее меняете эти три значения цвета на 0xffffffffff5f6ffe = -10522626.
Сохраняете. Остается преверефицировать.
Так же некоторые программисты юзают метод setColor(int r, int g, int b )
Т.е. если Вы не нашли упоминание в классах нужного цвета способом описанным ранее, возможно используется не COLORREF, а задается каждый канал по отдельности.

Автор урока - kiriman.
Категория: Уроки по модификации java | Добавил: Tommy_M
Просмотров: 2880 | Комментарии: 4 | Рейтинг: 5.0/1

Всего комментариев: 4
Спам
TheRunningMan   (20.06.2013 14:28) [Материал]
Полезная инфа. +

Спам
smert124   (14.06.2013 23:38) [Материал]
Вот он вечно лазейки находит.)

Спам
TheOnBook   (09.06.2013 23:18) [Материал]
Согласен

Спам
LoLrD   (09.06.2013 17:40) [Материал]
Хороший урок

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

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

Lego Bionicle Defenders
Комментов: 0 | Загрузок: 21
Колобок против Зомби: Войны Дартса
Комментов: 0 | Загрузок: 67
Copter mtk Classic (j2me Port)
Комментов: 0 | Загрузок: 88
Virus (Mod)
Комментов: 1 | Загрузок: 99
Angry Birds: Space Battles
Комментов: 0 | Загрузок: 122
Bounce Nokia 2005 (Java SE Port)
Комментов: 0 | Загрузок: 265
Turrican 2004 (Siemens Version) — Universal J2ME Port
Комментов: 0 | Загрузок: 223
Bounce Tales: Robo-Fiction
Комментов: 0 | Загрузок: 164
Nowhere ПЕРЕВОД
Комментов: 0 | Загрузок: 174
Resident Evil Genesis & Uprising & Uprising LE Перевод
Комментов: 0 | Загрузок: 306

Lego bionicle defenders
Комментов: 0 | Просмотров: 84
Devalley Text Editor
Комментов: 0 | Просмотров: 1199
Установка среды разработки для J2ME
Комментов: 2 | Просмотров: 4746
Abyss Engine Lang Editor
Комментов: 7 | Просмотров: 4541
KEmulator nnmod v2.16
Комментов: 0 | Просмотров: 4556
SISContents
Комментов: 1 | Просмотров: 6825
Особые буквы (À ö ß ç и т.д.) в PES 2010 (java)
Комментов: 0 | Просмотров: 6169

Трейлер ремейка SCP-087
Комментов: 0 | Просмотров: 4392
Открыт код Stalker Mobile 3D
Комментов: 1 | Просмотров: 4819
ГДЕ JAVA- ТУСОВКА? - ТУТ!
Комментов: 0 | Просмотров: 5122
Чат в Телеге
Комментов: 0 | Просмотров: 5203
ODN Remake - скриншоты
Комментов: 1 | Просмотров: 4799
O. D. N Remake
Комментов: 0 | Просмотров: 5113
Новый сайт с мобильными загрузками - Oldfag
Комментов: 6 | Просмотров: 6614
Случайный мод
Мод на игру Ops sniper 3D.
3811 1142 11 3.2
Статистика
Онлайн всего: 17
Гостей: 17
Пользователей: 0
Пользователи
Гости сайта

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