![]() |
eXeL@B —› Вопросы новичков —› Эстетика от Alawar хочу выковырять музыку |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2012 16:26 · Личное сообщение · #1 Если не по теме форума, извините. Суть в следующем понравилась музыка с этой игры. Захотел ее выковырять. В отличие от остальных игр в эстетике нет архива со всеми данными (картинка музыка и т.д.) Сам файл игры (ексешник) весит 165 метров. Ясно что все в нём. Мною сделано следующее: 1) Выяснено, что в временных файлах игра создает папку с длл и парочкой ексешников общим весом в 1,5 мб. Ковыряться нет смысла. 2) Проверены ресурсы. Ничего интересного в них нет. 3) Просмотрел за последней секцией файла. Нашел сигнатуру Code:
4) искал по сигнатуре Ogg. Данные находились, были сохранены в файл, но он не открылся. Дальше не знаю, что можно пробовать. ![]() |
|
Создано: 01 августа 2012 16:29 · Личное сообщение · #2 |
|
Создано: 01 августа 2012 16:31 · Личное сообщение · #3 |
|
Создано: 01 августа 2012 16:45 · Поправил: ekkl · Личное сообщение · #4 |
|
Создано: 01 августа 2012 17:25 · Поправил: ==DJ==[ZLO] · Личное сообщение · #5 |
|
Создано: 01 августа 2012 18:09 · Личное сообщение · #6 |
|
Создано: 01 августа 2012 18:10 · Личное сообщение · #7 http://rghost.ru/39516535 http://rghost.ru/39516603 тут и музыка и все звуки из игры. останется только первые несколько байт вырезать до сигнатуры и слушай, выбирай. сам инсталлятор это Nullsoft Installer, внутри большой файл Enlightenus.wrp.exe - это MMF2, внутри его файл с ресурсами 1.ccn - это вроде их собственный формат, там файлы обычным zlib-ом ужаты. Всё просто. ![]() ![]() |
|
Создано: 01 августа 2012 19:42 · Личное сообщение · #8 |
|
Создано: 01 августа 2012 22:12 · Личное сообщение · #9 У меня есть готовые распаковщики, я просто взял и вытряхнул. Но если самому ковырять то идем сюда http://www.clickteam.com/website/world/multimedia-fusion-2 качаем, разбираемся какие архивы они делают. В файле Enlightenus.wrp.exe "слеплены" два исполняемых файла. Нам нужен второй, он находится по смещению 5с033h. Оверлей второго начинается с А7030h. Там идет имя файла этой бундлы, а чуть далее с байтов 78 DA начинается zlib-овский блок. И таким образом идут несколько файлов с именами. А вот после них идет большой кусок ресурсов начинающийся с сигнатуры 50 41 4В 45 02 03. Это еще одна бундла (1.ccn) в которой тоже подряд идут такие же zlib-овские блоки, которые и являются упаковаными файлами. А уж распаковать zlib проблем нет никаких. То есть в других дистрибутивах ищем сразу сигнатуру 50 41 4B 45 02 03 и после неё это сами файлы. ![]() |
|
Создано: 01 августа 2012 23:37 · Поправил: Kindly · Личное сообщение · #10 Ну еще есть ----- Array[Login..Logout] of Life ![]() |
|
Создано: 02 августа 2012 09:48 · Личное сообщение · #11 |
|
Создано: 02 августа 2012 12:47 · Личное сообщение · #12 |
|
Создано: 02 августа 2012 14:28 · Личное сообщение · #13 |
|
Создано: 02 августа 2012 20:22 · Личное сообщение · #14 |
|
Создано: 02 августа 2012 23:47 · Поправил: vden · Личное сообщение · #15 |
|
Создано: 03 августа 2012 10:20 · Личное сообщение · #16 |
|
Создано: 03 августа 2012 14:28 · Поправил: vden · Личное сообщение · #17 gamemaker проверяет правильность приклееных данных, откуда берётся смещение оверлея я не проверял, возможно просто константа. смещение считается от начала файла. по ходу, оверлей местами патчится иначе zlib выдаст data error. Проще всего, наверно, найти строку L"Loading sounds" или L"Loading sprites". По xref'у находится функция, которая грузит расширения, триггеры, константы, звуки, спрайты, фоны. По адресу 50BE9C - функция условно "unzlib_stream", которая распаковывает из memory stream в который загружен exe, в новый поток. перед блоком данных в исходном потоке записан dword = размер упакованного блока. В "unzlib_stream" есть код Code:
edi не меняется после вызова и указывает на TMemoryStream, грубо говоря: Code:
т.е. можно поставить хук и прочитать буффер. можно было бы сделать всё красивее, с извлечением имён, но я пока не дошёл до этого Что касается файлов спрайтов, то похоже, в одном файле хранится несколько кадров, там есть имя спрайта, ширина, высота, размер блока не ясно зачем = ширина*высота*4 точки/на пиксель. Когда спрайт загружен он парсится и из него выдираются кадры в виде битмапов. Если нужно отлаживать игру, то fullscreen переключается F4. ![]() |
|
Создано: 12 декабря 2012 20:06 · Личное сообщение · #18 |
|
Создано: 12 декабря 2012 20:43 · Поправил: mysterio · Личное сообщение · #19 SunHere И охота же народу всегда ![]() ----- Don_t hate the cracker - hate the code. ![]() |
|
Создано: 12 декабря 2012 21:03 · Личное сообщение · #20 |
|
Создано: 13 декабря 2012 16:09 · Поправил: SunHere · Личное сообщение · #21 |
![]() |
eXeL@B —› Вопросы новичков —› Эстетика от Alawar хочу выковырять музыку |