Используйте magic.mgc с другого языка

В настоящее время я работаю над проектом, который включает в себя чтение fileВолшебные файлы (без привязок). Я хотел бы знать, как можно было бы прочитать тесты файлов из скомпилированного двоичного файла magic.mgc непосредственно, на другом языке (например, Go), так как я не уверен, как его содержимое следует интерпретировать.

1 ответ

Решение

По словам Кристоса Зуласа, основного автора файла:

Если вы хотите использовать их напрямую, вам нужно понять двоичный формат (который меняется со временем) и загрузить его в свои собственные структуры данных. [...] Код, который анализирует файл, находится в apprentice.c. Смотрите check_buffer() для читателя и apprentice_compile() для писателя. Существует 4-байтовое магическое число, за которым следует 4-байтовый номер версии, за которым следует MAGIG_SET (2), число из 4 байтов считается одним для каждого набора (ascii, двоичный), за которым следует массив записей "struct magic" в собственном байтовом формате.,

Так что это формат, который следует ожидать! Тем не менее, он должен быть проанализирован так же, как необработанные файлы.

Другие вопросы по тегам