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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/neo23x0/fnord
Статический анализАнализ вредоносных программ
GitHubneo23x0/fnord

Fnord

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

Репозиторий
3034484 лет назадПроверено 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

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