Если вы не знаете, что такое ClassEditor, оффсет и что такое hex-Значения – это статья не для вас, советую прочесть материалы по трём вышеперечисленным категориям.
Рассмотрим два варианта редактирования картинок. Первый – это редактирование одиночной картинки, второй – редактирование в так называемых «паках» - то есть архивов, с вложенными в них картинками, текстом или звуками. Чтобы понять, что перед нами, необходимо открывать файлы в программе ClassEditor(скачать его можно в Интернете с кучи сайтов, думаю, его поиск не составит труда). Хочу заметить, что файлы с расширением .class открывать не надо)) В них может находиться текст к игре или же программный код самой игры, что нам не нужно. Также выкинем из рассмотрения файлы с расширением .mid (это музыка из игры).
Запустим программу и откроем файл, в котором, как вы думаете содержится графика. Как мы видим, перед нами две таблицы. В центре – hex-значения, а справа, то, как бы они отобразились в обычном текстовом редакторе. Но нам главное понять, что перед нами, пак с картинками или что-то другое. Делается это довольно просто. Поскольку все java-игры поддерживают один формат графики - .PNG, то при открытии в WinHex этих картинок, у всех будет одна особенность. В правом столбце будем искать следующие сочетания символов - ‰PNG
(hex-код в средней таблице - 89504E470D0A1A0A0000000D49484452) и IEND®B`‚ (hex-код в средней таблице - 0000000049454E44AE426082). Эти, так сказать выражения – начало и конец любой картинки в формате .png, и поиск этих значений в паке, поможет нам определить, присутствуют картинки или нет.
Всё, что между ними – и есть картинка.
Итак, мы нашли пак с картинками. Далее поступаем следующим образом, если перед нами пак, то в нём лежит больше одной картинки(а также может быть текст и музыка из игры), каждая из картинок начинается так сказать с тега открытия картинки и заканчивается тегом закрытия(о них говори лось чуть раньше). Чтобы вытащить картинку из пака, выделяем кусок текста в ClassEditor от начала тега открытия до конца тега закрытия, выделенный текст копируем. Далее создаём новый пустой файл и туда закидываем этот наш кусок, сохраняем (можно приписать расширение .png к концу файла, так будет даже правильнее). ВАЖНОЕ ЗАМЕЧАНИЕ – лучше будет, если вы запомните или запишете оффсеты(смещения) начала и конца картинки из пака, это вам пригодится на финальном этапе. Получившийся файл – какая-то картинка из пака(бывает, что картинок в одном паке по 200, так что можете немного страдануть, пока ищете то, что вам нужно). Далее эту картинку мы меняем в любом графическом редакторе. НО!! Подчёркиваю, что размер переделанной картинки должен быть СТРОГО меньше, чем размер исходной (хотя мне встречались люди, которые утверждали, что можно и больше, лично у меня ни разу не получилось, и игра просто не запускалась – Мб, у меня руки кривые, Мб у вас получится, дерзайте). Итак, перерисовали картинку, как теперь её обратно закинуть в пак? Открываем наш пак, находим тот кусок, который копировали (исходная картинка), удаляем его подчистую, а вместо него вставляем код изменённой картинки. И не забываем про оффсеты(то есть про размер, он должен быть меньше чем исходный). Например, картинка исходная начинается с оффсета 100 и кончается оффсетом 15А, а измененная вставилась от 100 до 155, то есть ещё свободных 6 байт, этот пробел можно занулить(поставить нули вплоть до оффсета исходной картинки, то есть чтобы изменнёная легла ровно в интервал старой). Всё, сохраняем файл-пак и кидаем в игру.
© FleXoR
Игры от Глофта и Рыб таким варварским способом не берутся.