Arts-Union

Мастерская => Стол заказов и предложений => Тема начата: Altmer от 06 Декабрь 2016, 11:48:00

Название: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 06 Декабрь 2016, 11:48:00
Принимаю заказы на реинженеринг форматов данных не использующих шифрование.

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

Собственно мне это надо, скажем так, для апробирования некоторых программных модулей, и если кому-то нужно отреверсить конкретный формат данных, например для игр 3ДО или что-то еще, то я с удовольствием совмещу приятное с полезным.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 06 Декабрь 2016, 13:46:07
Для себя первым делом отреверсил структуру файловой системы NVRAM для 3ДО. В следующей версии Феникса можно будет заглянуть внутрь содержимого и извлечь отдельные файлы =) А может даже и записать!

Код: C++
  1. struct nvram_header //очень похоже на файловую систему в дисках 3ДО
  2. {
  3.   u8   record_type; // 1
  4.   c8   synk[5]; // "ZZZZZ"
  5.   u8   version; // 2
  6.   u8   flags; // 0
  7.   c8   comment[32]; //пусто
  8.   c8   id[32]; //"NVRAM"
  9.   u32b volume_uniq;
  10.   u32b volume_size; // 1
  11.   u32b volume_count; //должно быть 32768
  12.   u32b root_uniq; //уникальный идентификатор корня
  13.   u32b root_count; //ноль - корневой директории нет, NVRAM вообще не поддерживает директории
  14.   u32b root_size; //размер блока корневой директории
  15.   u32b last_avatar_index; //всегда ноль, дублирование в NVRAM не используется
  16.   u32b avatar;  //адрес первой записи в двусвязном списке
  17. }
  18.  
  19. //каждая запись имеет следующий формат
  20. struct nvram_record
  21. {
  22.   u32b uniq;  //уникальный идентификатор записи
  23.   u32b next; //адрес следующей записи (если он равен avatar, значит это последняя запись)
  24.   u32b prev; //адрес предыдущей
  25.   u32b size; //размер сегмента памяти связанного с записью включая саму структуру record
  26.   u32b head_size; //размер заголовка включая саму структуру record (нас интересуют только заголовки размером 64 байта)
  27.  
  28.   //поля ниже - только для структур с размером 64 байта
  29.   u32b fsize; //размер данных файла, которые следуют сразу же за заголовком и их размер не должен превышать size-head_size
  30.   u32b zero; //ничего кроме нуля не встречал, но возможно это место для каких-либо флагов
  31.   c8   ext[4]; //по умолчанию там обычно пробелы, но иногда бывают 4 символа - похоже на аналог расширения у файлов, но расширения бывают и в имени
  32.   c8   file_name[32]; //имя файла
  33. }
  34.  
  35.  
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: ПАУК от 07 Декабрь 2016, 05:50:57
В следующей версии Феникса можно будет заглянуть внутрь содержимого и извлечь отдельные файлы =) А может даже и записать!
Это какие файлы? ::scratch:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 07 Декабрь 2016, 08:03:44
Это какие файлы? ::scratch:

Те, что игры в NVRAM пишут.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: ПАУК от 08 Декабрь 2016, 07:29:58
Каспера поправить можно? А то у него с сохранениями проблема, 2 раза чтоль нельзя сохраняться...
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 08 Декабрь 2016, 13:39:48
Каспера поправить можно? А то у него с сохранениями проблема, 2 раза чтоль нельзя сохраняться...

Может у тебя просто места не хватает или игра не поддерживает. В следующей версии сможешь проверить.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: ПАУК от 10 Декабрь 2016, 17:30:29
Омг... Здесь читал, что баг игры => http://forum.3doplanet.ru/viewtopic.php?p=2872#p2872 Сам не проверял ::scratch:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 10 Декабрь 2016, 17:57:16
Омг... Здесь читал, что баг игры => http://forum.3doplanet.ru/viewtopic.php?p=2872#p2872 Сам не проверял ::scratch:

Дай NVRAM с сейвом - я гляну в чем дело.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: ПАУК от 10 Декабрь 2016, 18:53:49
Глянул щас на эмуляторе образ "Casper (U)", вроде нормально пересохраняется.
А на приставке нет возможности проверить, резак не пишет.
Фиг знает, чо у него там за проблемы были.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 09:31:07
О! Хотелось бы увидеть разбор формата уровней для 3DO DeathKeep.  ::play:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: ПАУК от 11 Декабрь 2016, 09:40:33
Не, всё-таки в Каспере проблема есть с постоянно растущим сейвом... Ближе к концу игры файл сохранения превышает размер доступной памяти - игра перестаёт сохраняться.
Цитировать
Casper
File manager bug:
The game's file manager may lock up when attempting to scroll down the list of saved games. The system will have to be reset, causing the loss of everything accomplished in the current session.
Save game bug:
The game keeps track of everything that was changed as it is played. As more of the house is explored more things are changed, which results in a larger save game file. After over 80% of the maps are explored, the size of save game file can actually exceed the 16K limit of the 3DO nvRAM. At this point, only one save game can be present. This is a design flaw from the original Saturn version from which the 3DO version was based. When quitting the game, the file will be lost instead of being saved. Since there is no warning when a save is made, everything appears to be normal.
Use the The 3DO Game Guru to compress all save game files that can not be deleted. Before saving, use the "Storage" option to check how much nvRAM is used and available. Exit the "Storage" option (without scrolling) and save the current session. Use the "Storage" option to verify that the nvRAM numbers have changed. If the save was successful, the bytes available should decrease and the bytes used should increase.
http://www.3do.cdinteractive.co.uk/viewtopic.php?t=1233
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 11:38:39
Не, всё-таки в Каспере проблема есть с постоянно растущим сейвом... Ближе к концу игры файл сохранения превышает размер доступной памяти - игра перестаёт сохраняться.

Если реализовать HLE для File Folio - тогда это перестанет быть проблемой и объем сохранений будет ограничен жестким диском ПК. Файлы будут просто лежать в директории а не в NVRAM.bin. Вполне можно сделать, может как-нибудь реализую.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 11:41:46
О! Хотелось бы увидеть разбор формата уровней для 3DO DeathKeep.  ::play:

Посмотрю.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 12:03:41
Спасибо! Насколько я вижу, формат уровней в чем-то схож с PC-шным. Та же матрица квадратов со значениями. Вот только разобраться с форматом этих значений (что за что отвечает) у меня не получилось.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 12:39:43
Спасибо! Насколько я вижу, формат уровней в чем-то схож с PC-шным. Та же матрица квадратов со значениями. Вот только разобраться с форматом этих значений (что за что отвечает) у меня не получилось.

Можешь примерно прикинуть сколько текстур имеет в протяженности уровень? Я подозреваю уровни имеют сетку размером 128 на 128, но хотелось бы проверить.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 13:15:14
Была у меня мысль, что там 128*128, но вот эта карта уровня Astral (PC версия) выбила из колеи:

(http://savepic.org/6305245m.jpg) (http://savepic.org/6305245.htm)
Если нужно, наклепаю таких скринов по всем уровням.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 13:37:40
Была у меня мысль, что там 128*128, но вот эта карта уровня Astral (PC версия) выбила из колеи:
Если нужно, наклепаю таких скринов по всем уровням.

Почему? Я насчитал в длинку 64 сегмента, влазит вполне. Уровни на PC идентичные?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 13:57:42
Карты на 3DO нет, поэтому сравнить точно нет возможности. По остаточной памяти уровни такие же. 64? А, блин, че-то я не туда посмотрел. Тогда, вроде, укладывается.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 14:00:21
Карты на 3DO нет, поэтому сравнить точно нет возможности. По остаточной памяти уровни такие же. 64? А, блин, че-то я не туда посмотрел. Тогда, вроде, укладывается.

А ресурсы ПК версии не ковырял? Может они идентичные?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 14:08:16
Не идентичные. В 3DO версии вид текстуры, тип поверхности (наклонная, прямая) закодированы по-другому. В PC версии просто текст и параметры как бы разнесены друг от друга. Во вложении файлы PC версии.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 14:29:13
Похоже семантика уровня (точки входа/выхода, плюшки и враги) в 3ДО содержится в исполняемом файле.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 14:36:19
Это плохо... Стоп. Ну, в таком случае, в exe нужно хранить эту инфу по всем уровням, а судя по его размеру, вряд ли это так. Размер экзешника, как в Doom.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 14:48:26
Это плохо... Стоп. Ну, в таком случае, в exe нужно хранить эту инфу по всем уровням, а судя по его размеру, вряд ли это так. Размер экзешника, как в Doom.

Может я и ошибаюсь. Надо для реверса карт запрограммировать визуализацию, тогда видно будет что к чему, на следующих выходных сделаю =)

Что значат параметры в ПК версии?

Код: Text
  1. #CUBES 1786
  2.  0 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 255
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2016, 15:05:50
Не знаю. Определил единственный доступный для себя способ: взять нулевой уровень (он бонусный, самый простой прямоугольник), и последовательно менять параметры. Но до этого руки пока не дошли, да и неэффективно это. ::thumbdown:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2016, 15:39:14
Когда сделаю карту - можно будет проверять аномалии в игре и большую часть вычислить, а потом уже можно и менять параметры для проверки оставшихся вещей.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 21 Декабрь 2016, 18:15:51
Не успел допилить функционал для визуализации карт, поэтому скорее всего на следующих выходных.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 21 Декабрь 2016, 21:16:02
Это будет отдельное приложение?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 22 Декабрь 2016, 08:54:41
Это будет отдельное приложение?

Нет, но можно будет и отдельное сделать.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 25 Декабрь 2016, 02:34:05
Если нужно, наклепаю таких скринов по всем уровням.

Сделай для нулевого уровня.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 25 Декабрь 2016, 08:55:16
Разобрался с габаритами уровней. Каждый "воксель" уровня кодируется 8-ю байтами, всего 64х32х8 "вокселей" - длина 64, ширина 32 и высота 8.
В аттаче раскадровка по 8-ми этажам уровня 11а (цвета получены просто по сырым данным), который по идее сответствует тому скрину, что ты приводил.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 25 Декабрь 2016, 17:04:04
О! Класс. Да, конфигурация очень похожа.  ::thumpup:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 25 Декабрь 2016, 19:50:10
Прежде чем до конца разобраться, надо доработать всякие удобные фичи для ускорения разбора в визуальном режиме. Но это теперь только на следующих выходных.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 28 Декабрь 2016, 13:37:58
Че-то я совсем протупил. Прочитал еще раз тему и только увидел, что ты просил скрин нулевого уровня. Вот он, если еще актуально.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 28 Декабрь 2016, 14:29:38
Вроде совпадает. А второй этаж можешь добавить?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 28 Декабрь 2016, 17:15:55
На этом уровне нет второго этажа. Просто прямоугольная здоровая комната и 1 телепорт выхода.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 28 Декабрь 2016, 19:24:46
странно, потому что в данных вроде как есть еще этаж, хотя может он идет как потолок?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 28 Декабрь 2016, 21:51:44
Потолок присутствует, да. Может, там один этаж в данных ограничивающий полом, другой потолком. Т.е. в данных как бы заданы ограничивающие габариты, а то, что внутри, движок не интересует?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 29 Декабрь 2016, 06:42:51
Возможно, вот скрин. Там 2 этажа с данными, остальные 6 без флуктуаций.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 29 Декабрь 2016, 07:11:11
Похоже. Светлые полосы - куча разных предметов. Из разных уровней игры. Единственное, мне не совсем понятна горизонтальная полоса по короткой стороне прямоугольника на первом скрине и вертикальная полоса по длинной стороне на втором.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 29 Декабрь 2016, 07:20:58
Эти полосы скорее всего дают разряды отвечающие за стены, если присмотреться полосы есть с каждой стороны, просто менее выраженные.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 29 Декабрь 2016, 07:22:17
Кстати потолок в этом уровне высокий? Если да, тогда понятно почему 2 этажа в данных.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 29 Декабрь 2016, 07:32:33
А, ну, наверное, из-за низкого разрешения такой эффект. Хотя, цвета разные, если смотреть границы со всех сторон.
Вот скрины уровня:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 29 Декабрь 2016, 07:33:31
-
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 29 Декабрь 2016, 07:35:07
-
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 29 Декабрь 2016, 07:39:25
-
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 29 Декабрь 2016, 08:30:26
А, ну, наверное, из-за низкого разрешения такой эффект. Хотя, цвета разные, если смотреть границы со всех сторон.
Вот скрины уровня:

Так это не цвета - это просто данные карты абы как засунутые в цвет.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 29 Декабрь 2016, 11:54:25
Я это понял. Просто визуально цвета верхней и левой границ похожи, поэтому мне показалось, что должно также быть и снизу/справа. А так, цвета для каждой из ограничивающих поверхностей должны быть индивидуальны.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 28 Январь 2017, 18:30:49
Есть какой-нибудь прогресс по сабжу? ;)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 28 Январь 2017, 19:48:38
Есть какой-нибудь прогресс по сабжу? ;)

Я пока-что другим делом занят, но с картой все достаточно тривиально, позже к этому вернусь.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 09 Июль 2017, 20:13:12
Доброго времени суток! Хотел напомнить о теме, есть ли подвижки? :)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 10 Июль 2017, 06:41:28
Да, инструмент совершенствуется =)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Декабрь 2018, 19:55:19
Подниму тему. Есть ли обновления? Если да, то пощщупать можно?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 11 Декабрь 2018, 20:16:28
Да, был ряд усовершенствований, но сейчас я сильно занят доработкой эмулятора )
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 12 Декабрь 2018, 12:32:05
Кстати, исходники OperaFS[De]Сompiler - открыты и доступны на сайте в разделе утилит.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 12 Декабрь 2018, 12:52:44
О! Спасибо!
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Май 2019, 19:43:36
Еще интерес появился. Известно ли, какой формат файла треков Need for Speed в папке tracks? Также, как и в случае с DeathKeep хочу получить 3D геометрию. Вроде как сама геометрия появляется с места 54 52 4B 44 (TRKD)? Сам я формат файла не смогу понять пойму. Конвертер написать, со временем, да. Хотелось бы описание формата файла.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 14 Май 2019, 13:04:36
NFS Remake?  :)

Мне кажется "на глаз" воссоздать быстрее будет, нет?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 14 Май 2019, 13:30:40
Нет, не быстрее. Глянул поближе. Похоже геометрия уровней идентична с PC версией, только в 3DO байты перевернуты. Возможно есть небольшие отличия, но они выпаливаются простым параллельным соспоставлением и допиливанием на месте. Текстуры тоже отдельная история, но пока интересна именно геометрия. Возможно, проще будет сконвертировать ее из PC версии. Правда, старые конвертеры/эдиторы не пашут ни фига.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 14 Май 2019, 15:24:02
VM Player и VirtualBox не помогут запустить старый софт? Я обычно через них запускаю на старых версиях Винды  ;)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 14 Май 2019, 17:04:37
Пробовал в 86Box-32-v110. Поставил Win98, NFS старый и попытался натравить на него утилиту tracked. Не сработало, хотя все по инструкции.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 14 Июнь 2019, 08:31:26
Расковырял чутка.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 14 Июнь 2019, 09:46:23
карта трассы nfs? планируется мод на 3DO?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 14 Июнь 2019, 09:53:09
Да, это геометрия первого сегмента Alpine. Объекты пока негабаритные. Насколько я понял, трассы совпадают с PC версией за исключением некоторых текстур и привязки заборов.
Пока ничего не планирую, хочу достать треки. Всегда хотелось посмотреть на трассы с высоты птичьего полета.
Altmer здесь появляется? Хочу осведомиться насчет Deathkeep. Он вроде раскурил формат, хотелось бы пощупать.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 14 Июнь 2019, 10:02:35
Altmer здесь появляется?
очень редко, полностью погружен в работу

Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 08:38:54
Продолжение.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 08:40:11
2
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 08:41:20
3
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 08:45:39
4
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 08:46:23
5
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 08:48:20
6
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 24 Июнь 2019, 09:09:21
а что с текстурками случилось?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 09:13:47
Текстуры объектов? Их пока не достал.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 24 Июнь 2019, 09:23:39
ПК исходников нет? интересно, насколько отличается версия 3DO
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 09:28:55
ПК исходники есть только для OpenNFS. Судя по всему, трассы совпадают. Пробовал виртуальную дорогу (та, что для просчета колижн, невидимая, без текстур) из файла 3DO версии наложить на трассу PC версии - совпадает полностью.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 24 Июнь 2019, 09:46:30
движок OpenNFS адаптировать бы  для 3DO и можно делать шо душа пожелает )))

ща посмотрел видеоролик http://1amstudios.com/projects/opennfs1/ так-то оно не плохо смотрится и физика вроде бы близка к 3DO
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 09:49:27
Физика там гамно полное, если честно. Еще ни одна PC NFS не приблизилась к эталонной 3DO. И написанное в OpenNFS не вкорячишь на 3DO.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 24 Июнь 2019, 09:56:45
на PC SE и палитру похерили, звуки моторов. помню там ещё зачем-то вырезали видео где мент наручники цепляет ??? в общем хуже получилось чем на убогой  PS1
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 09:58:14
Самое главное, что изменили физику и на PSX и на PC.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 24 Июнь 2019, 10:04:10
спид хак твой интересный получился, а что сопернику не подкрутил оборотов? =)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Июнь 2019, 10:05:43
Да как-то не думал об этом.  ::scratch:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 24 Июнь 2019, 10:11:34
было бы интересно на равных погоняться.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 05 Ноябрь 2019, 15:44:04
наткнулся на темку про DOOM, оно для PS1, может кому будет интересно Master Edition PSX Doom (https://www.doomworld.com/forum/topic/101161-gec-master-edition-psx-doom-for-the-playstation-1102019-beta-3-release-now-are-you-ready-for-more-action/)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 08 Ноябрь 2019, 17:36:33
Ну вот, продвинулся значительно. Делаю почти параллельно PC и 3DO версию. Загружается и отображается все в PC версии (кроме текстур 3D объектов). В 3DO версии непроработаны текстуры рельефа и полностью обработка 3D объектов. Ну и по мелочи всякого.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 08 Ноябрь 2019, 17:38:44
-
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 08 Ноябрь 2019, 17:39:51
Интересно, как там DeathKeep продвигается. Что-то от Altmer-а не слуху не духу.  ::scratch:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 09 Ноябрь 2019, 09:17:05
Versus, отличная работа ::thumpup:

на счёт DeathKeep только Altmer может сказать и видимо не скоро )
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 10 Ноябрь 2019, 13:32:47
Да, прикольно... А цель в этом какая?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 10 Ноябрь 2019, 17:53:22
Мне хотелось посмотреть на трассы сверху, я это сделал. В общем-то цели своей я фактически достиг. Дальше не придумал пока. ::scratch:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 11 Ноябрь 2019, 03:14:38
А что ещё можно сделать?

- Можно свои объекты добавить?
- Можно геометрию изменить?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Casper от 11 Ноябрь 2019, 08:18:12
или расширить автопарк, добавить возможность выбора любого сегмента трассы, режим на 2х с разделением экрана ;D
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 11 Ноябрь 2019, 13:02:09
На сколько понял - расширить автопарк - уже решённый вопрос... (https://www.youtube.com/channel/UC2ZthUzCEbb4gzy-AhOCnUQ/videos)

Versus это случаем не ты - Archive 3DO?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Ноябрь 2019, 17:12:13
А что ещё можно сделать?

- Можно свои объекты добавить?
- Можно геометрию изменить?
Ну, навскидку можно расширить дорогу, но тогда машина будет проезжать сквозь текстуры трассы. Можно добавить свои или убрать объекты (пока что знаю, как добавить плоские и угловые). Поменять фон можно...
Из серьезного - нарисовать свой трек. Но тут скорее больше вопросов, чем ответов, хотя свет в конце тоннеля виден. ))) Сразу оговорюсь, что я писал только выдергивалку трасс, а не запихивалку обратно. Это отдельный челендж. Так вот, трассу для физического движка свою сделать можно. А вот с рельефом сложность. Отдельный блок рельефа, которых дофигища в треке, состоит из 3D данных и фоновой cel картинки. То есть, мы продвигаемся вперед и фоновые картинки, появляясь одна за другой, маскируют недалеко отрисованную 3D трассу. Это можно увидеть, если включить в фениксе аппаратную отрисовку. Помимо этого, есть еще много параметров в этом блоке, назначение которых я не знаю. То есть, свой 3D рельеф я запихать смогу, даже cel картинку, наверное... Но сделать так, чтобы фоновые картинки появлялись в нужных местах, вовремя и соответствующего размера... Вряд ли. К тому же, они пререндеренные. Как это делать - хз.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Ноябрь 2019, 17:13:06
или расширить автопарк, добавить возможность выбора любого сегмента трассы, режим на 2х с разделением экрана ;D
Нет, это точно нет.
Archive 3DO - не я.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 11 Ноябрь 2019, 18:45:27
Ну понятно, что collision для текстур трассы надо делать, чтобы машины сквозь них не проезжали...

Надо писать "запихивалку" :-D Тогда, хотя бы, можно будет текстуры машин подменить и свои объекты засунуть, чтобы если уж не трассы поменять на новые, то хотя бы украсить старые.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Ноябрь 2019, 18:53:48
Не, сейчас мне интереснее DeathKeep, вот только не дорублюсь никак как Altmer получил эти картинки. У меня получается пока так:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Ноябрь 2019, 18:55:32
-Второй этаж уровня 0.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Ноябрь 2019, 18:56:31
И третий этаж. А должно получаться не так. На предыдущих страницах у Altmera получалось... Что-то я не так делаю...
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 07 Август 2020, 12:18:55
Altmer, можно глянуть код, который работает с файлами Deathkeep? Или пощупать приложение, которое выдает это:
http://www.arts-union.ru/smf/index.php?topic=863.msg14349#msg14349
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 17 Август 2020, 16:22:09
Altmer, можно глянуть код, который работает с файлами Deathkeep? Или пощупать приложение, которое выдает это:
http://www.arts-union.ru/smf/index.php?topic=863.msg14349#msg14349

Код: C++
  1. /*
  2.  * File: death-keep-level
  3.  * Created on: Вс дек 11 16:44:23 2016
  4.  * Author: Altmer
  5.  */
  6.  
  7. void makemap(grid @g, uint64 off)
  8. {
  9.     int sk=32;
  10.     g.resize(64,32);
  11.     for(int i=0;i<32;i++)
  12.     {
  13.         for(int j=0;j<64;j++)
  14.         {    
  15.             int ind=(j*sk+i)*8;
  16.             int x=j;
  17.             int y=i;
  18.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  19.         }
  20.     }
  21. }
  22.  
  23. void makemap1(grid @g, uint64 off)
  24. {
  25.     int sk=32;
  26.     g.resize(64,32);
  27.     for(int i=0;i<32;i++)
  28.     {
  29.         for(int j=0;j<64;j++)
  30.         {    
  31.             int ind=(j*sk+i)*8+1;
  32.             int x=j;
  33.             int y=i;
  34.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  35.         }
  36.     }
  37. }
  38.  
  39. void makemap2(grid @g, uint64 off)
  40. {
  41.     int sk=32;
  42.     g.resize(64,32);
  43.     for(int i=0;i<32;i++)
  44.     {
  45.         for(int j=0;j<64;j++)
  46.         {    
  47.             int ind=(j*sk+i)*8+2;
  48.             int x=j;
  49.             int y=i;
  50.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  51.         }
  52.     }
  53. }
  54.  
  55. void makemap3(grid @g, uint64 off)
  56. {
  57.     int sk=32;
  58.     g.resize(64,32);
  59.     for(int i=0;i<32;i++)
  60.     {
  61.         for(int j=0;j<64;j++)
  62.         {    
  63.             int ind=(j*sk+i)*8+3;
  64.             int x=j;
  65.             int y=i;
  66.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  67.         }
  68.     }
  69. }
  70.  
  71. void makemap4(grid @g, uint64 off)
  72. {
  73.     int sk=32;
  74.     g.resize(64,32);
  75.     for(int i=0;i<32;i++)
  76.     {
  77.         for(int j=0;j<64;j++)
  78.         {    
  79.             int ind=(j*sk+i)*8+4;
  80.             int x=j;
  81.             int y=i;
  82.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  83.         }
  84.     }
  85. }
  86.  
  87. void makemap5(grid @g, uint64 off)
  88. {
  89.     int sk=32;
  90.     g.resize(64,32);
  91.     for(int i=0;i<32;i++)
  92.     {
  93.         for(int j=0;j<64;j++)
  94.         {    
  95.             int ind=(j*sk+i)*8+5;
  96.             int x=j;
  97.             int y=i;
  98.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  99.         }
  100.     }
  101. }
  102.  
  103. void makemap6(grid @g, uint64 off)
  104. {
  105.     int sk=32;
  106.     g.resize(64,32);
  107.     for(int i=0;i<32;i++)
  108.     {
  109.         for(int j=0;j<64;j++)
  110.         {    
  111.             int ind=(j*sk+i)*8+6;
  112.             int x=j;
  113.             int y=i;
  114.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  115.         }
  116.     }
  117. }
  118.  
  119. void makemap7(grid @g, uint64 off)
  120. {
  121.     int sk=32;
  122.     g.resize(64,32);
  123.     for(int i=0;i<32;i++)
  124.     {
  125.         for(int j=0;j<64;j++)
  126.         {    
  127.             int ind=(j*sk+i)*8+7;
  128.             int x=j;
  129.             int y=i;
  130.             g.color(x,y,u32((ind)*8+4)|u32b((ind)*8));
  131.         }
  132.     }
  133. }
  134.  
  135. int main()
  136. {
  137.     uint64 size=sizeof("");
  138.    
  139.     legend("","text:Floor 0");
  140.     legend("","grid,12:makemap");
  141.     legend("","text:Floor 1");    
  142.     legend("","grid,12:makemap1");
  143.     legend("","text:Floor 2");    
  144.     legend("","grid,12:makemap2");
  145.     legend("","text:Floor 3");    
  146.     legend("","grid,12:makemap3");
  147.     legend("","text:Floor 4");    
  148.     legend("","grid,12:makemap4");
  149.     legend("","text:Floor 5");    
  150.     legend("","grid,12:makemap5");
  151.     legend("","text:Floor 6");    
  152.     legend("","grid,12:makemap6");
  153.     legend("","text:Floor 7");    
  154.     legend("","grid,12:makemap7");
  155.    
  156.     return 0;
  157. }
  158.  

Вот скрипт, но приложение надо реанимировать ) Хотя из скрипта ты можешь понять как получаются индексы блоков.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 17 Август 2020, 16:23:35
Благодарю!  ::drinks:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 21 Август 2020, 15:04:04
Что-то я туплю...  ::dash:
Читается 64-битное число (8 байт), оно же является условным вокселем. Этих вокселей в файле по 64*32 на этаж. То есть, начало файла - Floor0 с 0x0 до 0х4000. И начинаем построение обычной таблицы 64 столбца на 32 ряда.
Цвет для ячейки таблицы расчитывается из этого 64-битного числа. Какой цвет будет не особенно важно.
Но блин у меня не получаются такие картинки, хоть тресни...  ::dash: Получаются как бы с какой-то сдвижкой. Позже выложу результат. Вроде и просто все, но уперся непонятно во что...
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 22 Август 2020, 09:16:59
Выложу только этажи с данными уровня 0.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 22 Август 2020, 09:18:15
Следующий:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 22 Август 2020, 09:19:48
И с выходом из уровня (предположительно).
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 22 Август 2020, 09:20:39
Если же поменять местами ширину и длину, то тоже получается не так:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 22 Август 2020, 09:21:55
Следующий:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 22 Август 2020, 09:23:20
И с выходом:

Что я делаю не так? O.o
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 24 Август 2020, 16:53:14
Сам понял. Сначала читаем по высоте, потом по ширине, потом по длине... ::dash:
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Altmer от 28 Август 2020, 15:32:26
Извини - не следил за темой )
Да, вроде как-то так. Там на самом деле основная сложность - декодировать данные и связать их с ресурсами игры.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 18 Сентябрь 2020, 10:19:45
Да. Написал небольшую софтину для удобства раскодирования. С этими байтами как-то все неоднозначно...  ::scratch: Таблица справа - заглушка для дальнейшего теста и предположений. Список составлял сам, может что упустил.
Кто хочет поковырять и увидеть эти кубики в 3D - см. вложение.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 11 Июль 2021, 20:02:15
Сам спросил, сам ответил. Кому интересно, я сделал описание форматов файлов (геометрия и текстуры треков и машин) 3DO Need for Speed. По ссылке - максимум информации на данный момент. Расковырял почти все, хотя есть еще несколько принципиальных моментов. Думаю, на версию 0.9 потянет.
https://3dodev.com/documentation/file_formats/nfs
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 15 Июль 2021, 04:02:18
Крутяк! Версия этой игры на 3DO - самая лучшая.

Интересно, что по описанию, такое ощущение, что хотели сделать физику передних и задних колёс О_о
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 15 Июль 2021, 17:23:38
Хм... Откуда такой вывод про передние колеса?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 16 Июль 2021, 13:09:33
Цитировать
*.TireR – not used?
*.TireF - not used?

Чисто мои предложения. Ни на что не претендую.
Tire - колесо/шина
R/F - соответственно, Rear - задние и F - Front, передние.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 16 Июль 2021, 13:24:50
Динамика машин прописана целиком в одном файле.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 09 Январь 2023, 13:08:35
В общем, в Deathkeep я раскурил почти всё. Ну, по-крайней мере, для построения 3D моделей уровней.
Вот краткие демонстрации промежуточных результатов, финальный результат, думаю, скоро выложу.
https://www.youtube.com/watch?v=aEKoGKF6sbA
https://www.youtube.com/watch?v=AwdSG6Tpsm4
https://www.youtube.com/watch?v=9nqLWS00DJg
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 09 Январь 2023, 18:23:30
Круто!

- Почему Blender? :)
- Почему Death Keep?
- Разве уровни в игре не генерятся при каждом запуске?
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 09 Январь 2023, 18:29:14
-Удобно было использовать формат *.obj как простой в синтаксисе. Можно импортировать и не в blender, тут без разницы.
-Нравится игра, давно хотел увидеть линии телепортов уровня 11 в 3D, ну и еще вообще увидеть все уровни, карты-то нет.
-Нет, генерятся в Slayer, в Deathkeep неизменные.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 09 Январь 2023, 18:33:36
Ок.

Дальше что планируешь сделать?  8-)
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: Versus от 09 Январь 2023, 18:34:38
Не знаю пока, это нужно дооформить.
Название: Re: Реверсинженеринг структуры файлов не использующих шифрование
Отправлено: doom_sun от 09 Январь 2023, 18:37:19
Пиши, если что :) Может какие-то бесполезные навыки пригодятся и смогу помочь... В общем - за любой кипиш ;)