Насколько точен анализ контента для определения типа файла?

377
Bj Blazkowicz

Мне нужно определить mime-тип файлов без расширений (файловые форматы документов, такие как PDF, doc, docx и т. Д.), И мне интересно, насколько точны известные сигнатуры файлов?

Что я сделаю, так это создам карту типов файлов и их подписей. А затем прочитайте шестнадцатеричные значения из каждого файла. Я буду использовать .NET для этого и включу сниффинг в свое приложение. Проблема в том, что я не могу найти ни одной хорошей библиотеки, которая делает это в мире .NET, и поэтому я попытаюсь написать свою собственную. По моему мнению, это должно быть довольно тривиально, потому что меня интересует только небольшое подмножество форматов файлов.

-1

1 ответ на вопрос

1
Datarecovery.com MK

Это будет легко для некоторых типов файлов и трудно или невозможно для других. Каждый тип файла будет отличаться. В файле нет ни одного места, которое бы указывало на тип файла. Например, изображения JPEG имеют очень узнаваемый заголовок с определенными подписями, нижний колонтитул и их легко идентифицировать. Но к обычным текстовым файлам вообще не прикрепляются метаданные. Если вы посмотрите на них в виде необработанных данных, вы увидите, что текстовая информация просто перемешивается между предыдущим файлом и следующим файлом. Если у вас есть файл, то вы можете отсканировать весь файл, чтобы убедиться, что это ASCII или Unicode.

Чтобы найти такой способ идентификации для значительного количества типов файлов, потребовалось бы немало усилий. Вы должны искать инструмент, который уже доступен для этого, который может идентифицировать большинство типов, которые важны для вас. Вот программа для Windows, например, которая делает что-то подобное и имеет 5 944 определения типов файлов.

Можете ли вы предоставить больше информации о том, что вы пытаетесь сделать? Какое магическое число?

Меня интересуют только различные форматы файлов документов, такие как pdf, doc, docx и т. Д. Bj Blazkowicz 8 лет назад 0
Посмотрите, как работает это программное обеспечение TrIDNet (на самом деле оно написано на .NET). Похоже, что версия командной строки может дать вам больше гибкости в том, что вы пытаетесь сделать, например, работать со многими файлами за раз или изменять или добавлять правильное расширение. http://mark0.net/soft-trid-e.html Datarecovery.com MK 8 лет назад 0

Похожие вопросы