Мастерская > Стол заказов и предложений
Реверсинженеринг структуры файлов не использующих шифрование
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 раза чтоль нельзя сохраняться...
Навигация
Перейти к полной версии