Что у нас есть?

Это тоже интересно




Статьи и описания форматов игровых файлов

Как ломалась графика из DX-Ball 2

Эта статья относится к играм:

Автор материала: Дмитрий Жаров


В статье автор описывает процесс взлома графического формата IMG из игры DX-Ball 2


Начало

Проинсталлил игру, запустил, поиграл, к графону присмотрелся. Пошарил по папкам и нашел два интересных файла:
TitleScreen.bmp (тут поверапы, в bmp)
PowerUps.img (а тут в img, мне так кажется :)

Дальше гипотеза: смотрю все файлы %Edit% (%Edit% — твой любимый редактор), и вижу что все файлы начинаются с IMST, ага сигнатура. Пошли дальше, единичка и 3 нулю, обычно маленькое число в DWord, его я не понял и у всех виденных файлов оно не меняется, видимо версия формата — т.е. пока 1.

 

Берем файл ПоверАпс.имг и работаем с ним.

 

Предположение № 1, пусть графон 8бит.

 

Пишу прогу (давно написал называю %Scan%), которая открывает файл в выдает все байтики в градации серого, т.е. Byte->RGB(Byte,Byte,Byte). Считаю с серединки, мать чесная вижу, рисунки но кривые, сдвинуты, отраженные и перевернутые, но вижу. Так значит 8бит. А что это значит — это значит есть палитра.

 

Она:

  1. Глобальная — одна у всех
  2. Локальная — каждому свое

Обычно первое.

 

Она:

  1. В Начале (обычно)
  2. В Конце
  3. В Середине
  4. В ЕХЕ (Не дай Бог)

Она:

 

1. Формат RGB (старые игры обычно)

2. Формат RGBA (новые игры — причем A обычно 0)

 

Пусть в начале, и глобальная, смотрю — ой мать, смотри , в начале 3 байта и нуль, 3 байта и нуль и т.д… Она, подбираю (прога, таймер и глаза) смещение ($16 — у нас принято в hex работать). Теперь в цвете смотрю — точно рисунки.

 

Так что я знаю о файле, 20 одинаковых рисунков, 8бит, 32×30 писк. Немало. Логично, что рисунки после палитры, беру %Scan%, задаю смещение и размер рисунка — он, но вначале мусор, а может спец данные размер там и т.п.

 

Так стоп смотрю в начало файла,а что между сигнатурой и палитрой байт 3 нуля, байт 3 нуля. Т.е. два DWord первое 40 — круто, количество файлов*2, не смейся такая закономерность не редкость, запомним, а вот второе точно не знаю замен, везде статик.

Обломы

Ладно исследую мусор %Edit% так слово, не байтовое, а английское круто+нуль, а через три нуля до него число, чуешь, DWord размер название — проверим, так и есть, а мусора меньше. Дальше байт+3/0, байт+3/0=2 DWord, 32 и 30 — узнаешь размер, так ой нулей сколько, подбираем по %Scan%, е $0C, хоккей вот и рисунок, теперь крутим отражаем и подбираем вывод (какой получился уже не помню, но это легко). Так читаем остальные и получаем… бред какой-то, пустые имена, пустые рисунки, и файл на половину прочитан, баг? А может рисунков не 20 а реально 40 ? Ну ка. Да, так и есть.

 

Клево открываю, другие файлы — бац везде вылетаю, аут оф рандж, аут оф стек, ребут…

 

Выключил компьютер.

 

Включил.

 

Открыл. Глаза.

 

Поехали, надо уложится в 1 день.

 

И так в чем трабла, ошибка, так читаю первый рисунок в файлах ал-райт, второй еее, нет даже ёёёёёё, размер 16000000×1600000 блин. размер названия, 32000 символов. Дас-с, обломчик. Но я этого ожидал. ПоверАпс.имг по сути суррогатный файл, палитра у всех похожа, хватает одной, размер один, сами рисунки прямоугольнички, чисто суррогат. Беру %File Compare%, сравнивая суррогат и другие рисунки, опа в старом мусоре единичка вылезла, итак нехорошо, толи 1 в байте, толи 256 в слово/Дслово. Да и рисунки подросли по размеру в байтах сильно, большой мусор? А 32/24бита? Да нет первый же вижу — корявый, но 8бит как пить-дать. Так ищу все рисунки благо они все *.bmp ага файлик вырос на 256×4, а что это — размер палитры, ага. А 1 или 256, факт наличия палитры, или колво цветов в ней, на замену, пусть второе, поскольку везде или 0 или 256, меняем так, чтобы если 0 Глобальная палитра,а если нет — читай Локальную. Все.

Эпилог

Добавил абаут, меню, диалог, поп-меню, иконку, выдрал, причесал, Копирайт, Компил, Пак, Bat.

Все.


 
©2000—2010 Михаил Бесчетнов aka Terminus
«EXTRACTOR.ru» — игровые ресурсы: распаковка музыки и графики, конверторы форматов и многое другое…
Ссылка на «EXTRACTOR.ru» при перепечатывании оригинальных материалов крайне желательна

Rambler's Top100