Используйте magic.mgc с другого языка
В настоящее время я работаю над проектом, который включает в себя чтение file
Волшебные файлы (без привязок). Я хотел бы знать, как можно было бы прочитать тесты файлов из скомпилированного двоичного файла magic.mgc
непосредственно, на другом языке (например, Go), так как я не уверен, как его содержимое следует интерпретировать.
1 ответ
По словам Кристоса Зуласа, основного автора файла:
Если вы хотите использовать их напрямую, вам нужно понять двоичный формат (который меняется со временем) и загрузить его в свои собственные структуры данных. [...] Код, который анализирует файл, находится в apprentice.c. Смотрите check_buffer() для читателя и apprentice_compile() для писателя. Существует 4-байтовое магическое число, за которым следует 4-байтовый номер версии, за которым следует MAGIG_SET (2), число из 4 байтов считается одним для каждого набора (ascii, двоичный), за которым следует массив записей "struct magic" в собственном байтовом формате.,
Так что это формат, который следует ожидать! Тем не менее, он должен быть проанализирован так же, как необработанные файлы.