Name | Modified | Size | Downloads / Week |
---|---|---|---|
module_10.c | 2025-04-23 | 2.9 kB | |
module_11.c | 2025-04-23 | 3.4 kB | |
module_30.c | 2025-04-23 | 258 Bytes | |
README.md | 2025-04-23 | 4.5 kB | |
module_08.c | 2025-04-23 | 1.1 kB | |
module_09.c | 2025-04-23 | 4.4 kB | |
module_04.c | 2025-04-23 | 1.5 kB | |
module_05.c | 2025-04-23 | 2.3 kB | |
module_06.c | 2025-04-23 | 2.2 kB | |
module_07.c | 2025-04-23 | 1.5 kB | |
module_02.c | 2025-04-23 | 2.8 kB | |
module_03.c | 2025-04-23 | 2.3 kB | |
module_00.c | 2025-04-23 | 201 Bytes | |
module_01.c | 2025-04-23 | 730 Bytes | |
complex_modules_file_analyzer.c | 2025-04-23 | 3.4 kB | |
INSTALL.md | 2025-04-23 | 3.2 kB | |
LICENSE | 2025-04-23 | 3.5 kB | |
Makefile | 2025-04-23 | 1.7 kB | |
Totals: 18 Items | 42.2 kB | 0 |
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
Контакты:
- Сайт: Granni
Репозитории:
- Codeberg: cmfa
- GitHub: cmfa
- GitLab: cmfa
- SourceForge: cmfa
- NotABug: cmfa
- Gitea (Demo): cmfa
- Gogs (Demo): cmfa
Лицензия
Этот проект распространяется под лицензией MIT.
См. файл LICENSE
для подробностей.
Примечание: Если вы используете cmfa в своем проекте, буду благодарен, если укажите авторство.