EXTRACTOR | .RU – версия 2.2 |
||
Что у нас есть? Это тоже интересно |
Статьи и описания форматов игровых файлов Как ломалась графика из DX-Ball 2Эта статья относится к играм: Автор материала: Дмитрий Жаров В статье автор описывает процесс взлома графического формата IMG из игры DX-Ball 2 Начало Проинсталлил игру, запустил, поиграл, к графону присмотрелся. Пошарил по папкам и нашел два интересных файла: Дальше гипотеза: смотрю все файлы %Edit% (%Edit% — твой любимый редактор), и вижу что все файлы начинаются с IMST, ага сигнатура. Пошли дальше, единичка и 3 нулю, обычно маленькое число в DWord, его я не понял и у всех виденных файлов оно не меняется, видимо версия формата — т.е. пока 1.
Берем файл ПоверАпс.имг и работаем с ним.
Предположение № 1, пусть графон 8бит.
Пишу прогу (давно написал называю %Scan%), которая открывает файл в выдает все байтики в градации серого, т.е. Byte->RGB(Byte,Byte,Byte). Считаю с серединки, мать чесная вижу, рисунки но кривые, сдвинуты, отраженные и перевернутые, но вижу. Так значит 8бит. А что это значит — это значит есть палитра.
Она:
Обычно первое.
Она:
Она:
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 «EXTRACTOR.ru» — игровые ресурсы: распаковка музыки и графики, конверторы форматов и многое другое… |