No Description

Grannik 5b018803d8 first commit 1 week ago
INSTALL.md 5b018803d8 first commit 1 week ago
LICENSE 5b018803d8 first commit 1 week ago
Makefile 5b018803d8 first commit 1 week ago
README.md 5b018803d8 first commit 1 week ago
complex_modules_file_analyzer.c 5b018803d8 first commit 1 week ago
module_00.c 5b018803d8 first commit 1 week ago
module_01.c 5b018803d8 first commit 1 week ago
module_02.c 5b018803d8 first commit 1 week ago
module_03.c 5b018803d8 first commit 1 week ago
module_04.c 5b018803d8 first commit 1 week ago
module_05.c 5b018803d8 first commit 1 week ago
module_06.c 5b018803d8 first commit 1 week ago
module_07.c 5b018803d8 first commit 1 week ago
module_08.c 5b018803d8 first commit 1 week ago
module_09.c 5b018803d8 first commit 1 week ago
module_10.c 5b018803d8 first commit 1 week ago
module_11.c 5b018803d8 first commit 1 week ago
module_30.c 5b018803d8 first commit 1 week ago

README.md

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: Вывод входной строки.

Примечание: Модули 12–29 и 31–35 зарезервированы для будущих расширений.

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

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

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

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

Автор:

  • Grannik

Контакты:

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

  • Codeberg: cmfa
  • GitHub: cmfa
  • GitLab: cmfa
  • SourceForge: cmfa
  • NotABug: [cmfa]()
  • Gitea (Demo): [cmfa]()
  • Gogs (Demo): [cmfa]()

Лицензия

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