Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
5 страниц V  < 1 2 3 4 > »   
Тема закрытаНачать новую тему
> Необходимо распаковать ресурсы с игры (Android)
Rezzoxe
сообщение 22.06.2016, 17:59
Сообщение #21


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


Это который архив был? Если который с текстурками, то печалька... хотя я думаю в каждом архиве текстурки должны быть...
Остаётся надеяться на помощь abracumner'a, если он конечно согласится =)


--------------------
Перейти в начало страницы
 
jamakasi
сообщение 22.06.2016, 22:49
Сообщение #25


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Ооо, есть продвижение небольшое. Получилось выдрать одну из текстур.

Похоже на то что zlib всетаки обычный но сами ресурсы,точнее текстуры как я и думал с оторванными заголовками т.е. хранятся чисто raw байты цветов пачками.
Перейти в начало страницы
 
jamakasi
сообщение 23.06.2016, 12:24
Сообщение #27


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Rezzoxe, бери архив который я прикрепил выше с выдранными данными, фильтруй от самых тяжелых до легких и колупай любым просмотрщиком raw изображений к примеру на http://rawpixels.net/ в онлайне можно, разрешения примерно от 1024х512 и ниже, перебирай пока что то внятное не выйдет потом можешь цветность подбирать wink.gif
 
 
 

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

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


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


jamakasi, ты прям сделал мой день! good.gif




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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Поделюсь прогрессом. Опять же темплейт для 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 нулей laugh.gif , им нужен был только заголовок от него для магии с последующими заголовками. Так же волшебный и самый последний файлик но его прикола я еще не понял.
Для распаковщика осталось только дописать распаковку zlib архивов и все wink.gif . А если получится узнать назначение переменных unknown1 и unknown2 то еще и запаковщик и тогда можно будет делать моды как минимум текстурные уже.
Перейти в начало страницы
 
Rezzoxe
сообщение 24.06.2016, 15:32
Сообщение #30


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Я же правильно понимаю что анпакер будет распаковать сразу в правильный формат (пнг и пр.), а то повозился я на этом raw pixels и охерел )).
Некоторые файлы удалось подобрать, а некоторые ни в какую...


--------------------
Перейти в начало страницы
 
jamakasi
сообщение 24.06.2016, 16:38
Сообщение #31


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


В общем наговнокодил немного. Получился распаковщик. 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";" 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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

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

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

Скрипты тоже глянул... да это именно игровые скрипты отвечающие за геймплей. К примеру сколько монет давать за преодоление очередного чекпоинта.


--------------------
Перейти в начало страницы
 
jamakasi
сообщение 26.06.2016, 16:44
Сообщение #35


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Если это как-то поможет 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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


Вот и я им про это... те анпакеры видимо просто универсальные для такого формата...


--------------------
Перейти в начало страницы
 
jamakasi
сообщение 26.06.2016, 17:10
Сообщение #39


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   202  
Группа: Участник
Сообщений: 918
Награды: 6
Регистрация: 17.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


--------------------
Перейти в начало страницы
 

5 страниц V  < 1 2 3 4 > » 
Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29.03.2024, 01:46