ЧАСТОТНЫЙ АНАЛИЗ ПОСЛЕДОВАТЕЛЬНОСТИ БАЙТОВ ДЛЯ КЛАССИФИКАЦИИ БИНАРНЫХ И ТЕКСТОВЫХ ФАЙЛОВ

FREQUENCY ANALYSIS OF BYTE SEQUENCES FOR CLASSIFICATION OF BINARY AND TEXT FILES
Филонов К.А.
Цитировать:
Филонов К.А. ЧАСТОТНЫЙ АНАЛИЗ ПОСЛЕДОВАТЕЛЬНОСТИ БАЙТОВ ДЛЯ КЛАССИФИКАЦИИ БИНАРНЫХ И ТЕКСТОВЫХ ФАЙЛОВ // Universum: технические науки : электрон. научн. журн. 2025. 2(131). URL: https://7universum.com/ru/tech/archive/item/19384 (дата обращения: 17.03.2025).
Прочитать статью:
DOI - 10.32743/UniTech.2025.131.2.19384

 

АННОТАЦИЯ

Статья посвящена исследованию природы бинарных и текстовых файлов. На основе частотного анализа байтовых последовательностей разработан эффективный алгоритм определения типа файла (бинарный или текстовый), который может быть применим в задачах обработки данных в системах с большими языковыми моделями и других автоматизированных системах. Применение средств исследования, таких как однослойный перцептрон и основанных на теореме Байеса формул, позволило добиться высокой точности классификации, а использование параметров отсечения (dropout) показало возможность оптимизации алгоритма без значительной потери качества за счет уменьшения числа значимых весов.

ABSTRACT

The article is devoted to the study of the nature of binary and text files. Based on the frequency analysis of byte sequences, an effective algorithm for determining the file type (binary or text) has been developed, which can be applied in data processing tasks in systems with large language models and other automated systems. The use of research tools such as a single-layer perceptron and formulas based on the Bayes theorem allowed achieving high classification accuracy, and the use of dropout parameters showed the possibility of optimizing the algorithm without significant loss of quality due to a decrease in the number of significant weights.

 

Ключевые слова: частотный анализ, бинарный файл, текстовый файл, перцептрон, последовательность байтов, теорема Байеса.

Keywords: frequency analysis, binary file, text file, perceptron, byte sequence, Bayes' theorem.

 

Введение. Современные задачи обработки данных требуют эффективных инструментов для классификации и анализа различных типов файлов. Одной из ключевых задач является определение, является ли файл бинарным (например, PNG, JPG, RAR) или текстовым (человеко-читаемым). В стандарте POSIX.1-2017 нет различия между текстовыми и двоичными файлами [6].  Ошибочная классификация может привести к сбоям в обработке данных, особенно в контексте работы с большими языковыми моделями (LLM, Large Language Models), где текстовые данные проходят обработку, а бинарные требуют иного подхода. Большие языковые модели (LLM) достигли большого прогресса во многих задачах, включая генерацию осмысленного исходного кода на разных языках программирования [4, с. 24]. Большие языковые модели сегодня могут содержать встроенную поддержку некоторых рабочих процессов [5, с. 67]. Все это подчеркивает актуальность темы исследования. Автоматизация процесса определения типа файла позволяет минимизировать ошибки и ускорить обработку данных. Существующие подходы часто опираются на использование расширений файлов, на предварительно настроенных библиотек для анализа содержимого, или на эвристическую классификации на основе исключения специфичных байтов. Однако такие методы имеют свои ограничения: отсутствие расширения, его неверное указание, либо высокая ресурсоёмкость существующих решений. Разработка нового алгоритма, сочетающего высокую скорость и точность, остаётся актуальной задачей для задач обработки больших объёмов данных.

Цель данного исследования – разработать простой, быстрый и надёжный алгоритм определения типа файла (бинарный или текстовый), который может быть применён в задачах обработки данных с использованием LLM и других автоматизированных систем.

Для ее решения необходимо решить следующие задачи:

1) собрать датасет 100 файлов различных форматов, языков, промаркированный на группы Бинарный/Текстовый;

2) разработать программу для анализа файлов и формирования таблицы частоты встречаемости каждого байта в бинарных и текстовых файлах;

3) разработать и протестировать алгоритм классификации файлов на основе полученной таблицы байт и весов, обеспечив высокую точность и надёжность работы.

Предметом исследования является частотный анализ последовательности байтов в содержимом файлов для классификации их типа. Гипотеза исследования: текстовые и бинарные файлы обладают различиями в частотных характеристиках байтов, которые можно использовать для эффективной классификации их типа.

Материалы и методы. Исследование проводилось на основе общенаучных методов – анализа и синтеза, и частно-научных методов математического моделирования и программной инженерии.

Сбор датасета: основным источником сбора послужили личные и общедоступные файлы из интернета. Использованы известные произведения литературы на разных языках, случайные изображения котиков и части исходного кода открытого программного обеспечения. Файлы были разделены на 2 папки:

- /binary – Бинарные файлы

- /text – Текстовые файлы

Точно так же был сформирован датасет для конечного тестирования, который содержит в себе части основного датасета обучения.
Всего вышло 104 файла в датасете для обучения и 129 – для тестирования.

Результаты обсуждения.

1. Разработка программы анализатора

Для создания анализатора был использован язык C#. Дополнительных библиотек использовано не было. Необходимо получить частотность байтов в обоих датасетах по отдельности. Для этого необходимо посчитать кол-во встреченных i-байтов и поделить на общее количество байтов в датасете.

После чего, для оценки верности гипотезы, посчитаем разницу частотностей для каждого i-байта.

Тем самым, у нас получается таблица разницы (рис. 1), пики которой явно показывают, что гипотеза верна.

 

Рисунок 1. Зависимость веса от байта

 

2. Основа алгоритма

Для основы алгоритма было принято решение использовать однослойный перцептрон (256, 1).

Как указывал Фрэнк Розенблатт, перцептрон способен спонтанно классифицировать любые данные [3, с. 405].   

Для упрощения, алгоритм можно сформулировать так: «Перебирая всю последовательность байтов, мы должны прибавить к сумме вес текущего встреченного байта (wi), поделенный на длину последовательности (l)».

После чего можно добавить к результату смещение (bias)

3. Получение весов

Теперь необходимо найти веса для нашего перцептрона. Для этого был использован подход на основе теоремы Байеса.

Как указывал Томас Байес, «если есть два последовательных события, вероятность второго и вероятность обоих вместе, и если первым обнаружено, что второе событие также произошло, вероятность того, что я прав, равна [1].

В нашем случае это будет выглядеть так:

Основываясь на этой формуле и наивном предположении о независимости признаков, можно сформулировать такое выражение:

Тем самым мы получили линейное уравнение, которое похоже на формулу перцептрона. Сделаем несколько замен:

Получим такое выражение, которое идентично перцептрону:

Выразив ранее вес (wi), мы можем теперь посчитать вес для каждого байта

Условно будем считать, что, тогда .

Также, чтобы исключить ошибку деления на 0, необходимо прибавить некую константуε (эпсилон) к числителю и знаменателю, которую мы подобрали экспериментальным путём как 10-3.

4. Оценка весов

Теперь, имея веса, мы можем провести их оценку по алгоритму, описанному ранее. Оценка на тестовом датасете показала 100%-ное распознавание, что мы считаем абсолютным результатом и выполнением поставленной задачи. Также, протестировав с разными параметрами отсечения (dropout), мы получили хороший результат до 20 оставшихся весов. Переобучение можно уменьшить, используя «отсечение» для предотвращения сложных коадаптаций в обучающих данных [2]. Поэтому, в теории, можно сократить размер весов и оптимизировать алгоритм.

Заключение. В ходе исследования была разработана программа и алгоритм для эффективного определения типа файлов (бинарный или текстовый) на основе частотного анализа байтовых последовательностей. Применение математических методов, таких как однослойный перцептрон и формулы, основанные на теореме Байеса, позволило добиться высокой точности классификации.

Экспериментальные тесты подтвердили правильность выбранного подхода: алгоритм обеспечил 100%-ную точность при классификации файлов тестового датасета, что свидетельствует об успешном выполнении поставленных задач. Более того, использование параметров отсечения (dropout) показало возможность оптимизации алгоритма без значительной потери качества за счёт уменьшения числа значимых весов.

Таким образом, разработанный алгоритм сочетает простоту реализации, высокую скорость и надёжность работы, что делает его пригодным для задач обработки данных, включая использование в системах с большими языковыми моделями (LLM) и других автоматизированных системах. В перспективе возможна интеграция данного решения в комплексные системы обработки файловых данных и дальнейшая его оптимизация для работы с большими объёмами данных.

 

Список литературы:

  1. An Essay towards Solving a Problem in the Doctrine of Chances. By the Late Rev. Mr. Bayes, F. R. S. Communicated by Mr. Price, in a Letter to John Canton, A. M. F. R. S Bayes, M.; Price, M // Philosophical Transactions of the Royal Society of London. –1763. –Vol. 53. – P. 370–418.
  2. Hinton Geoffrey E., Srivastava Nitish, Krizhevsky Alex, Sutskever Ilya, Salakhutdinov Ruslan R. Improving neural networks by preventing co-adaptation of feature detectors // arXiv:1207.0580v1 [cs.NE]. – 2012. – 3 Jul. / [Электронный ресурс]. – Режим доступа: URL : https://arxiv.org/pdf/1207.0580 (дата обращения: 12.02.2025).
  3. Rosenblatt F. The perceptron: a probabilistic model for information storage and organization in the brain //  Psychological review. –1958. –Vol. 65. No. 6. – P. 386–408.
  4. Timofeenko B., Efimova V. , Filchenkov A. Vector graphics generation with LLMs: approaches and models // Исследования по прикладной математике и информатике. Записки научных семинаров Санкт-Петербургского отделения математического института им. В.А. Стеклова РАН. –2023. – Vol. 530. – P. 24-37.
  5. Намиот Д. Е., Ильюшин Е. А. Архитектура LLM-агентов // International Journal of Open Information Technologies. – 2025. – Т. 13. – № 1. – С. 67-74.
  6. Спецификации Open Group. П. 3.403. – 2018 г. – Выпуск 7 // IEEE Std 1003.1-2017 (пересмотр IEEE Std 1003.1-2008) / [Электронный ресурс]. – Режим доступа: URL : https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_403 (дата обращения: 12.02.2025).
Информация об авторах

специалист по работе с нейросетями, ООО «Бигфингер», РФ, г. Санкт-Петербург

Neural Networks Specialist, Bigfinger LLC, Russia, Saint Petersburg

Журнал зарегистрирован Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), регистрационный номер ЭЛ №ФС77-54434 от 17.06.2013
Учредитель журнала - ООО «МЦНО»
Главный редактор - Звездина Марина Юрьевна.
Top