IPB

 
>

Необходимо распаковать ресурсы с игры (Android)

 
 Rezzoxe
сообщение 22.06.2016, 17:59
Сообщение #21


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Цитата(jamakasi @ 22.06.2016, 17:50) *
Есть еще такой прикол как порядок байтов поэтому иногда можно и не увидеть текст пока не отзеркалишь байты.


ааа, за это тоже читал, что иногда читается в обратном порядке.

Я тут ещё наковырял пару архивов со старых версий. Если я правильно понял, то это архивы с событий (event'ы) ежемесячных.
Они весят чуть меньше. Если это как-то поможет, то вот: https://yadi.sk/d/RWvxBaKNsiTBG

Сообщение отредактировал Rezzoxe - 22.06.2016, 18:00
Перейти в начало страницы
 
 
 jamakasi
сообщение 22.06.2016, 18:16
Сообщение #22


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, поможет =)
Перейти в начало страницы
 
 
 jamakasi
сообщение 22.06.2016, 19:44
Сообщение #23


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



не могу сказать пока совершенно точно но ооочень сильно вероятно что я был в корне не прав и изобретаю велосипед с разбором. Похоже на то что весь этот дат файлик ни что иное как следствие zlib компрессии, есть заголовки 0x78 0xDA которые обычно говорят о том что это zlib при этом с модификацией.
Нужна помощь того кто сталкивался или применял zlib.

Попробовал классически прогнать через злиб, вот что получилось но 90% это не то что должно быть =) https://yadi.sk/d/aLqPMXxssibAH
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 22.06.2016, 22:04
Сообщение #24


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Цитата(jamakasi @ 22.06.2016, 19:42) *
Попробовал классически прогнать через злиб, вот что получилось но 90% это не то что должно быть =) https://yadi.sk/d/aLqPMXxssibAH


Это который архив был? Если который с текстурками, то печалька... хотя я думаю в каждом архиве текстурки должны быть...
Остаётся надеяться на помощь abracumner'a, если он конечно согласится =)
Перейти в начало страницы
 
 
 jamakasi
сообщение 22.06.2016, 22:49
Сообщение #25


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, с текстурами. Я бы помог дальше но мои познания закончились я так глубоко не лазил и опыта не имел =(
Перейти в начало страницы
 
 
 jamakasi
сообщение 23.06.2016, 12:04
Сообщение #26


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Ооо, есть продвижение небольшое. Получилось выдрать одну из текстур.
(IMG:https://images.gameru.net/thumb/1939d595b5.png)
Похоже на то что zlib всетаки обычный но сами ресурсы,точнее текстуры как я и думал с оторванными заголовками т.е. хранятся чисто raw байты цветов пачками.
Перейти в начало страницы
 
 
 jamakasi
сообщение 23.06.2016, 12:24
Сообщение #27


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, бери архив который я прикрепил выше с выдранными данными, фильтруй от самых тяжелых до легких и колупай любым просмотрщиком raw изображений к примеру на http://rawpixels.net/ в онлайне можно, разрешения примерно от 1024х512 и ниже, перебирай пока что то внятное не выйдет потом можешь цветность подбирать (IMG:style_emoticons/default/wink.gif)
(IMG:https://images.gameru.net/thumb/ab9a7e73f7.png)  
(IMG:https://images.gameru.net/thumb/d1d72e325c.png)  
(IMG:https://images.gameru.net/thumb/34e5ad50d3.png)  

Кажись допедрил почти до всего, попробую сегодня-завтра распаковщик написать удобный. Осталось понять в каком точно формате пиксели хранятся, загадка точно кроется в заголовке FileHeader в полях unknown1-2-3-4 . Но впринципе дело в шляпе уже.

Сообщение отредактировал jamakasi - 23.06.2016, 13:00
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 23.06.2016, 15:37
Сообщение #28


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Цитата(jamakasi @ 23.06.2016, 12:22) *
Кажись допедрил почти до всего, попробую сегодня-завтра распаковщик написать удобный.


jamakasi, ты прям сделал мой день! (IMG:style_emoticons/default/good.gif)


Перейти в начало страницы
 
 
 jamakasi
сообщение 24.06.2016, 15:08
Сообщение #29


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Поделюсь прогрессом. Опять же темплейт для 010 Editor.
CODE
struct Header{
char null[4] <hidden=true>;
int fileCount;
int unknown1 <bgcolor=0x0000FF>;
int unknown2 <bgcolor=0x0000FF>;
char null1[4] <hidden=true>;
} header;
struct FileHeader{
short width;
short height;
int unknown1;
int unknown2;
char unk[4];
int unpacketDataSize; //x previos
int zlibDataLenght; //x-(x previos)
} fileHeader[ header.fileCount ];

struct ZlibContent(int dataLen){
byte data[dataLen];
};
ZlibContent data(fileHeader[0].zlibDataLenght);
local int i;
for( i = 1; i < header.fileCount-1; i++ )
ZlibContent data(fileHeader[i].zlibDataLenght-fileHeader[i-1].zlibDataLenght);
ZlibContent data(24); //magick size 0_o/ Dont trust, read to EOF


В общем очень веселый контейнер оказывается, сейчас абсолютно точно нахожу все файлы внутри с точностью байт в байт. unpacketDataSize (размер файла в байтах после декомпрессии архива) веселый оказался, оказалось что надо брать его из предыдущего заголовка. zlibDataLenght (число байт файла в контейнере) вообще веселый, рассчитывается как Х-(Х предыдущего заголовка).
Совершенно точно узнал что первый файл (нулевой) вообще фейковый полностью и представляет из себя 524288 нулей (IMG:style_emoticons/default/laugh.gif) , им нужен был только заголовок от него для магии с последующими заголовками. Так же волшебный и самый последний файлик но его прикола я еще не понял.
Для распаковщика осталось только дописать распаковку zlib архивов и все (IMG:style_emoticons/default/wink.gif) . А если получится узнать назначение переменных unknown1 и unknown2 то еще и запаковщик и тогда можно будет делать моды как минимум текстурные уже.
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 24.06.2016, 15:32
Сообщение #30


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Я же правильно понимаю что анпакер будет распаковать сразу в правильный формат (пнг и пр.), а то повозился я на этом raw pixels и охерел )).
Некоторые файлы удалось подобрать, а некоторые ни в какую...
Перейти в начало страницы
 
 
 jamakasi
сообщение 24.06.2016, 16:38
Сообщение #31


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, я как минимум нашел точные widthXheight для каждой текстуры и предположительно битность(похоже все 24 битные), т.е. на данный момент уже могу вытащить все файлы и в названии к примеру писать ширина_высота.raw. Но скорее всего получится и заголовки приделать обратно и тогда будут уже именно картинки нормальные в своих форматах.

Цитата(Rezzoxe @ 24.06.2016, 15:30) *
Некоторые файлы удалось подобрать, а некоторые ни в какую...

Это кстати следствие хитрожопости авторов упаковщика, там есть ложные заголовки архивов на которых я много раз спотыкался, сейчас вроде бы все нормально, по крайней мере все байты количественно покрываются точно без лишних и недостающих.
Перейти в начало страницы
 
 
 jamakasi
сообщение 26.06.2016, 14:49
Сообщение #32


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



В общем наговнокодил немного. Получился распаковщик. https://yadi.sk/d/wZELU9Toso9cJ в архиве исходники + в папке dist скомпиленный бинарник. Требуется установленная java.
Запускаешь прогу, жмешь File->Open , выбираешь архив с текстурами. В дереве слева отобразятся все файлы внутри, особо ничего интересного больше нет(в основном себе служебную инфу на форму толкал). Дальше жмешь File->SaveAllContent. Выбираешь папку куда распаковать.
В папке сохраняются се текстуры с именем вида "Номер_ШиринахВысота_ЦветоваяПалитра_ЦветаПикселей.raw" . Т.е. на том сайтике можешь скармиливать эту текстуру и выставлять все по заголовку файла. Разобрал к сожалению далеко не все заголовки поэтому у некоторых файлов вместо "_ЦветоваяПалитра_ЦветаПикселей_" будет "_цифраХцифра". Комбинация этих 2х цифр предположительно определяет палитру и цвета. Если очень хочется то можешь открыть исходники и в файле ContentHeader.java в функции private void identityPixelFormat() после 79 строки аналогично продолжить заполнение, принцип я думаю максимально понятен "if(pixelformat1==770 && pixelformat2==48) pixelFormatStr="RGB32-RGBA";" (IMG:style_emoticons/default/wink.gif)

На данный момент темплейт выглядит так:
CODE
struct Header{
char null[4] <hidden=true>;
int fileCount;
int headerSize;
int unknown2 <bgcolor=0x0000FF>;
char null1[4] <hidden=true>;
} header;
struct FileHeader{
short width; ;
short height;
short pixFormat1; //pixel format?
short pixFormat2; //pixel format?
short un3;
short un4;
char unk[4];
int unpacketDataSize ; //x previos
int zlibDataLenght ; //x-(x previos)
} fileHeader[ header.fileCount ];

struct ZlibContent(int dataLen){
byte data[dataLen];
};
ZlibContent data(fileHeader[0].zlibDataLenght);
local int i;
for( i = 1; i < header.fileCount-1; i++ )
ZlibContent data(fileHeader[i].zlibDataLenght-fileHeader[i-1].zlibDataLenght);
ZlibContent data(24); //magick size 0_o/ Dont trust, read to EOF

т.е. почти все разобрано.

Прога делает следующее. Открывает файлик с текстурами(тащит и длцшные), распарсивает все загловки, вырезает все файлы, разархивирует и сохраняет. Есть вариант подкрутить еще функционал.
Так же если у кого то есть степень магистра по ImageMagick, а точнее по ее утилите convert то можете помочь человеку дописав батник через который сконвертить все текстуры в нормальный формат типа png, я к сожалению не осиливаю эту монстроозную тулзу.

Чуть не забыл, архив с распакованными файлами textures_android.dat и TrialsTexturesDL_android.dat https://yadi.sk/d/bE1-gEoosoAdT
Перейти в начало страницы
 
 
 jamakasi
сообщение 26.06.2016, 15:22
Сообщение #33


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, Содержимое content.dat нужно? А то меня прикололо это занятие =)
Хм, в content.dat тоже схожая структура похоже. Сейчас поискал в нем по сигнатурам zlib заголовка, выцепил 1 блок и распаковал, в итоге оказался файлик а точнее некий скрипт текстовый. Распаковать в общем тоже реально.
Ага, вскрыл полностью правда сырым способом поэтому некоторые файлы могут быть битыми. https://yadi.sk/d/S-yVsKwUsoDXk . Музыка в xm формате, есть некие скрипты с расширением cpp 0___о, есть текстовые скрипты но с расширением .dat и т.д.

Сообщение отредактировал jamakasi - 26.06.2016, 15:44
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 26.06.2016, 16:17
Сообщение #34


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Цитата(jamakasi @ 26.06.2016, 15:20) *
Rezzoxe, Содержимое content.dat нужно? А то меня прикололо это занятие =)


Вообще в идеале нужно всё в правильном формате... скрипты, изображения, звук и прочее...
Но достаточно будет только изображений и звука...

Цитата(jamakasi @ 26.06.2016, 15:20) *
Музыка в xm формате

Послушал, это эмбиенты с трасс... отлично!

Скрипты тоже глянул... да это именно игровые скрипты отвечающие за геймплей. К примеру сколько монет давать за преодоление очередного чекпоинта.
Перейти в начало страницы
 
 
 jamakasi
сообщение 26.06.2016, 16:44
Сообщение #35


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Цитата(Rezzoxe @ 26.06.2016, 16:15) *
Вообще в идеале нужно всё в правильном формате... скрипты, изображения, звук и прочее...

Вообще у меня складывается впечатление что текстуры реально хранятся в игре в сыром виде, т.е. нет никаких png или dds а только то что я достал. Интересен еще момент с названиями файлов. Тут либо они хранят их прямо с рандомными хэшами либо где то есть файлик где каждому хэшу сопоставлено читаемое название файла.
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 26.06.2016, 16:46
Сообщение #36


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Если это как-то поможет 2

Кстати, пока ты мучался с блоками, с extractor.ru и exelab.ru кинули по анпакеру:

http://aluigi.altervista.org/mytoolz/offzip.zip
Пример: -a filename.dat Folder
Folder - по желанию

http://www.ctpax-x.org/uploads/stuns04.rar
Пример: -pkware- -lzo- -ucl2b- -ucl2d- -skip1500 filename.dat
где 1500 - Если будет много мелких лишних файлов, то skip можно увеличить или, наоборот, уменьшить, если не извлекаются какие-то мелкие нужные.

Оказывается такие анпакеры уже были, но опять же они распаковывают в сыром формате.
Перейти в начало страницы
 
 
 jamakasi
сообщение 26.06.2016, 16:54
Сообщение #37


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, Ну зато я разрешение текстур знаю и цветность в принципе тоже =)
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 26.06.2016, 16:59
Сообщение #38


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Цитата(jamakasi @ 26.06.2016, 16:52) *
Rezzoxe, Ну зато я разрешение текстур знаю и цветность в принципе тоже =)


Вот и я им про это... те анпакеры видимо просто универсальные для такого формата...
Перейти в начало страницы
 
 
 jamakasi
сообщение 26.06.2016, 17:10
Сообщение #39


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3645
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Rezzoxe, ну да, те анпакеры просто ищут начало zlib архива, отрезают кусок до следующего начала и распаковывают.
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 26.06.2016, 17:22
Сообщение #40


Игроман
**********

Группа: Участник
Сообщений: 915
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



jamakasi, а с архивом текстур уже полностью разобрался?
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 23.01.2021, 10:53