CMFA (Complex of modules file analyzer)

cmfa (Complex of modules file analyzer / Комплекс модулей анализатора файлов) — это консольный инструмент написанный на языке программирования C для анализа файлов. Он использует различные библиотеки для определения типа файла, кодировки, метаданных, архивных структур, медиа-характеристик и других свойств.

Возможности

  • Определение MIME-типа и описания файла (libmagic).
  • Проверка кодировки текста (uchardet, iconv).
  • Анализ архивов (libarchive).
  • Извлечение метаданных медиафайлов (libavformat).
  • Чтение EXIF-данных из JPEG (libexif).
  • Проверка сигнатур файлов (PNG, JPEG, ELF и др.).
  • Анализ текстовых файлов (JSON, CSV, ANSI-коды).
  • Модульная архитектура для легкого расширения.

Сборка и установка

Для установки зависимостей и сборки проекта следуйте инструкциям в INSTALL.md.

Использование и анадиз файла:

./cmfa example.jpeg

Приём в аргумент строки:

./cmfa "Hello, World!"

Пример вывода (для JPEG-файла)

Module: 00
 *** Complex of modules file analyzer ***

Module: 01
 Main: File is regular file

Module: 04
 Library libmagic: MIME: image/jpeg, Description: JPEG image data

Module: 09
 Library custom_signature: Signature match: JPEG, MIME: image/jpeg

Module: 11
 Library libexif: Resolution: 1920x1080, Taken: 2023:05:12 14:30:45, Camera: Canon EOS, GPS: None

Поддерживаемые модули

  • Module 00: Вывод баннера программы.
  • Module 01: Проверка типа файла (обычный файл или нет).
  • Module 02: Анализ текстовых файлов (ANSI-коды, JSON, CSV).
  • Module 03: Метаданные файла (размер, права, тип).
  • Module 04: MIME-тип и описание (libmagic).
  • Module 05: Проверка совместимости с UTF-8 (iconv).
  • Module 06: Определение кодировки текста (uchardet).
  • Module 07: Анализ архивов (libarchive).
  • Module 08: Анализ медиафайлов (формат, длительность, потоки).
  • Module 09: Проверка сигнатур (PNG, JPEG, ELF, PDF и др.).
  • Module 10: Текстовый или бинарный анализ файла.
  • Module 11: Извлечение EXIF-данных из JPEG (libexif).
  • Module 30: Вывод входной строки.

Примечание: Модули 1229 и 3135 зарезервированы для будущих расширений.

Контрибьютинг

Хотите добавить новый модуль или улучшить cmfa? Пожалуйста, следуйте структуре существующих модулей (module_*.c) и обновляйте Makefile при добавлении новых зависимостей.

Статус проекта

cmfa активно разрабатывается. Планируется добавление новых модулей и оптимизация производительности.

Автор:

  • Grannik

Контакты:

Репозитории:

Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей. Примечание: Если вы используете cmfa в своем проекте, буду благодарен, если укажите авторство.

Description
No description provided
Readme MIT 45 KiB
Languages
C 94.5%
Makefile 5.5%