Мастерская > Стол заказов и предложений

Реверсинженеринг структуры файлов не использующих шифрование

(1/25) > >>

Altmer:
Принимаю заказы на реинженеринг форматов данных не использующих шифрование.

Если справляюсь - получаете код на С++ под ZLIB-лицензией для работы с файлом.

Собственно мне это надо, скажем так, для апробирования некоторых программных модулей, и если кому-то нужно отреверсить конкретный формат данных, например для игр 3ДО или что-то еще, то я с удовольствием совмещу приятное с полезным.

Altmer:
Для себя первым делом отреверсил структуру файловой системы NVRAM для 3ДО. В следующей версии Феникса можно будет заглянуть внутрь содержимого и извлечь отдельные файлы =) А может даже и записать!


--- Код: C++ ---struct nvram_header //очень похоже на файловую систему в дисках 3ДО{  u8   record_type; // 1  c8   synk[5]; // "ZZZZZ"  u8   version; // 2  u8   flags; // 0  c8   comment[32]; //пусто  c8   id[32]; //"NVRAM"  u32b volume_uniq;  u32b volume_size; // 1  u32b volume_count; //должно быть 32768  u32b root_uniq; //уникальный идентификатор корня  u32b root_count; //ноль - корневой директории нет, NVRAM вообще не поддерживает директории  u32b root_size; //размер блока корневой директории  u32b last_avatar_index; //всегда ноль, дублирование в NVRAM не используется  u32b avatar;  //адрес первой записи в двусвязном списке} //каждая запись имеет следующий форматstruct nvram_record{  u32b uniq;  //уникальный идентификатор записи  u32b next; //адрес следующей записи (если он равен avatar, значит это последняя запись)  u32b prev; //адрес предыдущей  u32b size; //размер сегмента памяти связанного с записью включая саму структуру record  u32b head_size; //размер заголовка включая саму структуру record (нас интересуют только заголовки размером 64 байта)   //поля ниже - только для структур с размером 64 байта  u32b fsize; //размер данных файла, которые следуют сразу же за заголовком и их размер не должен превышать size-head_size  u32b zero; //ничего кроме нуля не встречал, но возможно это место для каких-либо флагов  c8   ext[4]; //по умолчанию там обычно пробелы, но иногда бывают 4 символа - похоже на аналог расширения у файлов, но расширения бывают и в имени  c8   file_name[32]; //имя файла}  

ПАУК:

--- Цитата: Altmer от 06 Декабрь 2016, 13:46:07 ---В следующей версии Феникса можно будет заглянуть внутрь содержимого и извлечь отдельные файлы =) А может даже и записать!

--- Конец цитаты ---
Это какие файлы? ::scratch:

Altmer:

--- Цитата: ПАУК от 07 Декабрь 2016, 05:50:57 ---Это какие файлы? ::scratch:

--- Конец цитаты ---

Те, что игры в NVRAM пишут.

ПАУК:
Каспера поправить можно? А то у него с сохранениями проблема, 2 раза чтоль нельзя сохраняться...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии