Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Fnord — Экстрактор шаблонов для обфусцированного кода | Kitploit
Инструменты/GitHubGitHub/neo23x0/fnord
Статический анализАнализ вредоносных программ
GitHubneo23x0/fnord

Fnord

Экстрактор шаблонов для обфусцированного кода

Репозиторий
303444 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Build Status Actively Maintained

Fnord

Fnord — это извлекатель шаблонов для обфусцированного кода

Описание

У Fnord две основные функции:

  1. Извлекать байтовые последовательности и создавать статистику
  2. Используя эту статистику, комбинировать длину, количество вхождений, схожесть и ключевые слова для создания YARA-правила

1. Статистика

Fnord обрабатывает файл с помощью скользящего окна переменного размера, чтобы извлечь все последовательности с минимальной длиной -m X (по умолчанию: 4) и максимальной длиной -x X (по умолчанию: 40). Для каждой длины Fnord выводит наиболее часто встречающиеся последовательности -t X (по умолчанию: 3) в виде таблицы.

Каждая строка таблицы содержит:

  • Длина
  • Количество вхождений
  • Последовательность (строка)
  • Форматированная (ascii/wide/hex)
  • Шестнадцатеричная закодированная форма
  • Энтропия

2. Создание YARA-правила

Fnord также генерирует экспериментальное YARA-правило. При создании YARA-правила он вычисляет оценку на основе длины последовательности и количества вхождений (длина * количество вхождений). Затем он обрабатывает каждую последовательность, удаляя все символы, не являющиеся буквами, и сравнивает их со списком ключевых слов (без учёта регистра), чтобы обнаружить последовательности, которые более интересны, чем другие. Перед записью каждой строки в правило Fnord вычисляет расстояние Левенштейна и пропускает последовательности, слишком похожие на уже включённые в правило.

Статус

[Экспериментальный] Fnord был создан несколько дней назад, и я протестировал его на нескольких образцах. Полагаю, что в ближайшие недели я отрегулирую значения по умолчанию и добавлю ещё несколько ключевых слов, фильтров и опций оценки.

Улучшение результатов

Если вы нашли обфусцированный код в образце, используйте hex-редактор, чтобы извлечь обфусцированный участок образца и сохранить его в новый файл. Используйте этот новый файл для анализа.

Поиграйте с флагами -s, -k, -r, --yara-strings, -m и -e.

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

Использование

root@kitploit:~
        ____                 __
       / __/__  ___  _______/ /
      / _// _ \/ _ \/ __/ _  /
     /_/ /_//_/\___/_/  \_,_/ Извлекатель шаблонов для обфусцированного кода
     v0.7, Florian Roth

    usage: fnord.py [-h] [-f file] [-m min] [-x max] [-t top] [-n min-occ]
                    [-e min-entropy] [--strings] [--include-padding] [--debug]
                    [--noyara] [-s similarity] [-k keywords-multiplier]
                    [-r structure-multiplier] [-c count-limiter] [--yara-exact]
                    [--yara-strings max] [--show-score] [--show-count]
                    [--author author]

    Fnord - Извлекатель шаблонов для обфусцированного кода

    опциональные аргументы:
      -h, --help            показать это справочное сообщение и выйти
      -f file               Файл для обработки
      -m min                Минимальная длина последовательности
      -x max                Максимальная длина последовательности
      -t top                Количество элементов в списке Top x
      -n min-occ            Минимальное количество вхождений для отображения
      -e min-entropy        Минимальная энтропия
      --strings             Показывать только строки
      --include-padding     Включать 0x00 и 0x20 в извлечённые строки
      --debug               Отладочный вывод

    Создание YARA-правила:
      --noyara              Не генерировать экспериментальное YARA-правило
      -s similarity         Допустимая схожесть (используйте значения от 0.1=низкая до
                            10=высокая, по умолчанию=1.5)
      -k keywords-multiplier
                            Множитель ключевых слов (умножает оценку последовательностей, если
                            найдено ключевое слово) (лучше использовать значения от 1 до 5,
                            по умолчанию=2.0)
      -r structure-multiplier
                            Множитель структуры (умножает оценку последовательностей, если
                            она определена как структура кода, а не полезная нагрузка)
                            (лучше использовать значения от 1 до 5, по умолчанию=2.0)
      -c count-limiter      Ограничитель количества (ограничивает влияние количества путём
                            установки верхнего предела) (лучше использовать значения
                            от 5 до 100, по умолчанию=20)
      --yara-exact          Добавить ограничения по магическому заголовку и магическому завершению в
                            правило
      --yara-strings max    Максимальная длина последовательности
      --show-score          Показывать оценку в комментариях YARA-правил
      --show-count          Показывать количество в образце в комментариях YARA-правил
      --author author       Автор YARA-правила

Начало работы

  1. git clone https://github.com/Neo23x0/Fnord.git и cd Fnord
  2. pip3 install -r ./requirements.txt
  3. python3 ./fnord.py --help

Примеры

root@kitploit:~
python3 fnord.py -f ./test/wraeop.sct --yara-strings 10
root@kitploit:~
python3 fnord.py -f ./test/vbs.txt --show-score --show-count -t 1 -x 20
root@kitploit:~
python3 fnord.py -f ./test/inv-obf.txt --show-score --show-count -t 1 --yara-strings 4 --yara-exact

Скриншоты

Fnord Screenshot

Fnord Screenshot

Fnord Screenshot

Предупреждение

Папка ./test содержит скрипты, которые являются вредоносными и могут быть обнаружены вашим локальным антивирусным сканером. Они не навредят вашей системе, пока вы их не запускаете.

Часто задаваемые вопросы

Почему вы не интегрировали Fnord в yarGen?

yarGen использует подход с белым списком для фильтрации строк, наилучшим образом подходящих для создания YARA-правила. yarGen применяет некоторые регулярные выражения для корректировки оценок строк перед созданием YARA-правил. Но его подход сильно отличается от метода, используемого Fnord, который вычисляет оценку байтовых последовательностей на основе статистики.

В то время как yarGen лучше всего подходит для необфусцированного кода, Fnord предназначен только для обфусцированного кода и должен давать гораздо лучшие результаты, чем yarGen.

Контакты

Следите за мной в Twitter для получения обновлений @cyb3rops

Скачать инструмент