IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Aurora Watching: Gorky Zero [.ZAP]
-=CHE@TER=-
Aug 11 2010, 13:32
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,360
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 313 раз(а)



На форуме Extractor.ru товарищ Axsis утверждал, что файлы там не запакованы, однако, судя по тому, что в Интернете нигде нет распаковщика и народ жалуется, что никто не может достать оттуда музыку - следовательно не всё так просто.

Скачал демку:
_ttp://www.ag.ru/games/soldier-elite-zero-hour/demos/14368

Увы, отдебажить игру не могу, т.к. она падает до того места, где расшифровываются файлы - при инициализации графики (чего-то у меня в видеокарте нехватает, поэтому получаю ошибку чтения памяти по адресу 0x0000000c). Что успел отдебажить, так это открытие файлов. Кстати, кто тоже будет ковырять демку - там после первого запуска появится файл в каталоге /bin/, где можно поменять настройки и запустить игру в окне, чтобы отлаживаться не мешала.
Так вот, всё что я смог узнать:
1) При открытии файла игра считывает 20 последних байт с конца:

DWORD sign; // 0x20031031
DWORD vers; // 0x00000004
DWORD off1;
DWORD off2;
DWORD unkn;

а) Первые два поля игра проверяет именно на эти значения - первое это сигнатура, второе - версия.
б) offs1 < offs2, в файле textures.zap разница между ними 32 байта и оба смещения указывают примерно на конец файла (они оба проверяются, правда не понял с каким значением - с размером файла?).
в) unkn - неизвестное поле, но небольшое. В том же textures.zap оно было равно 0xDB (но это точно не количество файлов - файлов там меньше было - штук 10).
2) Дальше игра, убедившись что файл верный, делает FileMapping() + MapView() всего файла, отчего ставить бряки на ReadFile() становится бессмысленным. (*улыбается*)
3) Интересен алгоритм определения архива свой/чужой - там также проверяется, а не .ZIP ли это архив. И, если .ZIP, то обрабатывается другим куском кода уже как .ZIP.
В целом структура .ZAP похожа на .ZIP из чего делаю вывод, что:
ZAP = ZIP Aurora Package

Напомню, структура .ZIP выглядит примерно так:

PK-заголовок|Файл-1|PK-заголовок|Файл-2|PK-заголовок|Файл-3|...|PK-заголовок|Файл-N
А далее снова идут PK-заголовоки, но уже без файлов ("Файл-#" - это тело сжатого файла).

Так вот, такое ощущение, что в .ZAP оставили именно этот хвост в конце с заголовками, а начало архива зашифровано. Причём ключ либо записан в самом архиве, либо игра генерит его как-то по другому (по имени, например), потому что все .ZAP архивы начинаются по разному.
Какое шифрование - стандартное для .ZIP или своё - не знаю. Затрудняет это всё к тому же то, что файлы, видимо, сжаты, а уже потом зашифрованы.
В упомянутом файле textures.zap в начале должен был идти .TGA файл - так вот, количество одинаковых полей по три байта (24 BPP видимо) в начале впечатляет. Однако, я перепробовал все XOR от 0 до 255, также rol и даже инверсию битов в байте слева на право - ничего хорошего так и не вышло. Кстати, в одном файле там вообще есть поле байт, эдак, под 200, если не больше, просто одинакового байта. Возможно, шифрование как-то меняет ключ или от чего-нибудь зависит (кстати, шифровать на предыдущий байт, как было в Runaway 2, я тоже пробовал). В файле с музыкой я нашёл две OggS сигнатуры незашированные. Но это два жалких фрейма, а не целые .OGG файлы.

4) Для тех, кто заинтересуется по адресу .692DE0 идёт чтение архива описанное в 1).

Кто-нибудь желает помочь?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
Siberian GRemlin
Aug 12 2010, 03:58
Сообщение #2


Advanced Member
***

Группа: CTPAX-X
Сообщений: 537
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Думаю, полная версия с последним обновлением вываливаться не должна.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Aug 12 2010, 13:48
Сообщение #3


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,360
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 313 раз(а)



QUOTE(Siberian GRemlin @ Aug 12 2010, 03:58) *
Думаю, полная версия с последним обновлением вываливаться не должна.
А с демо можно как-нибудь обойтись?.. А то качать полную версию... уф.


QUOTE(Axsis @ Aug 12 2010, 09:40) *
Игра, как я понимаю, в качестве ресурсов поддерживает и zip, правильно? Тогда, возможно, пираты после "локализации" не заморачивались с родным форматом и запихали всё в zip. И ко мне в тот раз попала такая вот пиратка. Это так, лишь предположения...
Кстати, да, мысль.

QUOTE(Axsis @ Aug 12 2010, 09:40) *
Как бы там ни было в прошлый раз, сейчас глянул демку с ag.ru
А я там демки не нашёл - поэтому ссылку и привёл... добавили уже что-ли?..

QUOTE(Axsis @ Aug 12 2010, 09:40) *
Трудно искать чёрную кошку в тёмной комнате, особенно, если её там нет... wink.gif
Это я про шифрование. Его там нет. Обычный deflate, просто без 2-х байт заголовка, STUNS справляется на ура.
У меня разрыв шаблона, честно говоря. Просто на форуме Extractor.ru есть ссылка на MegaUpload, в которой выложен какой-то .OGG файл. Так вот я на него STUNS натравливал и ничего не получилось извлечь. Кстати, я так понял, что тот .OGG файл это извлечённый при помощи Watto'вского MultiExtractor или как он там - т.е., по идее, файл должен был бы быть нормальный...
Поэтому я вариант со STUNS даже не проверял...
Спасибо, я тогда ещё раз проверю, может всё гораздо проще.
Так стоп. У меня двойной разрыв шаблона - только что проверил STUNS на том файле и он РАСПАКОВАЛ! Походу в конце 2005 года я ещё с распаковкой zlib не так активно работал, поэтому STUNS видимо даже не пробовал. Ох, ну и дела...

QUOTE(Axsis @ Aug 12 2010, 09:40) *
ДОБАВЛЕНО: Таблица файлов довольно мудрёная, но структуру уже почти полностью разобрал. Если кто-то соберётся писать распаковщик могу подсказать по формату.
Давай! Был бы признателен - меньше времени бы потратил. В больший файлах она, зрительно, как-то делится на несколько. Зачем так сделали я не понял.

QUOTE(Axsis @ Aug 12 2010, 09:40) *
ДОБАВЛЕНО2: Гугл по запросу "zap unpacker" выдаёт гору ссылок на распаковщик для Infernal, в котором, как оказалось, тот же самый zap. (по крайней мере из демки Aurora Watching всё распаковал).
Вроде как страничка автора, ложка дёгтя - он требует горячо любимый .net framework smile.gif
Это не наш метод. © (*улыбается*)
Кстати, что-то я протупил - я именно по названию игры искал и ничего поэтому не нашёл путного.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме


Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 20th September 2024 - 00:33