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

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

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

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

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

Категории

Все категории
Loading categories
yarasafe — SAFE вложения для сопоставления функций в yara | Kitploit
Инструменты/GitHubGitHub/lucamassarelli/yarasafe
Анализ уязвимостейОбратная инженерияАнализ вредоносных программАнализ Бинарных ФайловМашинное Обучение
GitHublucamassarelli/yarasafe

yarasafe

SAFE вложения для сопоставления функций в yara

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

Популярное

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

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

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

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

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

YARASAFE - Автоматические проверки схожести бинарных функций с помощью Yara

SAFE — это инструмент для создания вложений бинарных функций, разработанный Massarelli L., Di Luna G.A., Petroni F., Querzoni L. и Baldoni R. Вы можете использовать SAFE для создания ваших вложений функций для использования в правилах yara.

Если вы заинтересованы, ознакомьтесь с нашей исследовательской статьей: https://arxiv.org/abs/1811.05296

Если вы используете это в своих исследованиях, пожалуйста, процитируйте:

root@kitploit:~
@inproceedings{massarelli2018safe,
  title={SAFE: Self-Attentive Function Embeddings for Binary Similarity},
  author={Massarelli, Luca and Di Luna, Giuseppe Antonio and Petroni, Fabio and Querzoni, Leonardo and Baldoni, Roberto},
  booktitle={Proceedings of 16th Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)},
  year={2019}
}

Это не код для воспроизведения экспериментов из статьи. Если он вас интересует, взгляните на: https://github.com/gadiluna/SAFE

Если вы предпочитаете использовать PyTorch, взгляните на SAFEtorch: https://github.com/facebookresearch/SAFEtorch

Введение

Используя yarasafe, вы можете легко создавать сигнатуры для бинарных функций, вообще не глядя на ассемблерный код! Вам просто нужно установить плагины IDA Pro, которые находятся в папке IDA Pro Plugin этого репозитория.

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

В этом репозитории вы найдете плагин для IDA Pro и модуль yarasafe.

Yarasafe может сопоставлять функции, содержащие более 50 и менее 150 инструкций.

Требования

  • python3
  • radare2
  • jansson

Быстрый старт

Прежде всего, установите плагин IDA Pro. Инструкции по его установке находятся в папке ida-pro-plugin этого репозитория. Затем вы можете использовать наш docker-контейнер или собрать yara с модулем yarasafe.

Docker

Самый быстрый способ использовать yarasafe — это использовать наш docker-контейнер.

Загрузите образы:

  • docker pull massarelli/yarasafe

Запустите docker, смонтировав папку, содержащую правило и файл для анализа:

  • docker run -v {FOLDER_TO_MOUNT}:/home/yarasafe/test -it massarelli/yarasafe bash

Запустите yara внутри docker с вашим правилом!

Ubuntu

  • Клонируйте репозиторий:
root@kitploit:~
git clone https://github.com/lucamassarelli/yarasafe.git
  • Установите зависимости yara:
root@kitploit:~
sudo apt-get install automake libtool make gcc flex bison 
sudo apt-get install libjansson-dev
  • Установите radare2 в вашу систему:
root@kitploit:~
git clone https://github.com/radare/radare2.git
cd radare2
./sys/install.sh
  • Установите зависимости yarasafe:
root@kitploit:~
cd yarasafe/python_script
pip3 install -r requirements.txt
  • Скомпилируйте:
root@kitploit:~
./bootstrap.sh
./configure
make
  • Экспортируйте переменную окружения:
root@kitploit:~
export YARAPYSCRIPT={PATH_TO_YARASAFE_REPO}/python_script

MacOS

  • Клонируйте репозиторий:
root@kitploit:~
git clone https://github.com/lucamassarelli/yarasafe.git
  • Установите зависимости yara:
root@kitploit:~
brew install automake libtool flex bison 
brew install jansson
  • Установите radare2 в вашу систему:
root@kitploit:~
git clone https://github.com/radare/radare2.git
cd radare2
./sys/install.sh

Установите зависимости yarasafe:

root@kitploit:~
cd yarasafe/python_script
pip3 install -r requirements.txt
  • Скомпилируйте:
root@kitploit:~
./bootstrap.sh
./configure.sh
make
  • Экспортируйте переменную окружения:
root@kitploit:~
export YARAPYSCRIPT={PATH_TO_YARASAFE_REPO}/python_script

Тестирование

В папке rules вы найдете правило sample_safe_rule.yar. Это правило должно срабатывать для любого PE-файла:

root@kitploit:~
yara {PATH_TO_YARASAFE_REPO}/rules/sample_safe_rule.yar {FILES}

Как написать свое правило

Чтобы создать ваше правило safe-yara, сначала необходимо создать вложения для вашей функции. Для этого вы можете использовать плагин IDA Pro, поставляемый в этом репозитории. В папке ida-pro-plugin вы найдете всю информацию о том, как запустить плагин!

После получения вложений для ваших функций вам останется только создать правило. Пример правила safe-yara:

root@kitploit:~
import "safe"

rule example
{
    meta:
        description = "This is just an example"
        threat_level = 3
        in_the_wild = true

    condition:
        safe.similarity("[-0.02724416,0.00640265,0.01138294,-0.07013566,0.00306808,-0.09757628,0.10414989,-0.13555837,-0.07873314,-0.00725415,-0.01418876,-0.05907412,-0.12452127,0.06237456,0.02260636,-0.06013175,0.11689295,-0.00200026,-0.03594812,0.07857288,-0.00288544,0.01148411,0.00891006,0.04702956,0.1205316,0.0079077,-0.07449158,0.00653283,0.15414064,0.13021031,0.01325423,-0.35491243,-0.00992016,-0.21460094,0.0558461,-0.07761839,-0.10909985,-0.05616508,0.01800609,0.06736821,0.00308393,0.04241242,-0.08351246,0.13501632,-0.10729794,-0.10229874,0.00066896,-0.01963937,0.05516102,-0.01612499,-0.09743191,-0.0314435,-0.01470971,-0.00125769,-0.01774654,0.2332938,0.14166495,0.16998142,-0.04843156,-0.08931472,0.13102795,0.14147657,0.02275739,-0.04335862,0.05724025,0.03936686,-0.10526938,-0.11637416,-0.0112917,0.05484914,-0.06934103,0.2543144,-0.17833991,-0.00828893,0.00174531,-0.03048271,-0.04773486,0.095866,-0.14434388,0.11433239,-0.10749247,0.03952292,0.03988512,-0.11541581,-0.07812429,-0.04978319,0.32052052,-0.0497911,-0.13022986,0.02477266,-0.05968329,0.01724695,0.01577485,-0.0497415,0.24494685,0.00361651,-0.08172874,-0.07473877,-0.01046288,0.02298573]") > 0.95
}

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

Добавление safe в вашу версию yara

Если вы хотите добавить safe в ваш репозиторий yara:

  • Установите все зависимости

  • Скопируйте файл libyara/modules/safe.c в your_rep/libyara/modules/safe.c

  • Скопируйте папку libyara/include/python в your_rep/libyara/include

  • В конце libyara/modules/module_list добавьте ``` MODULE(safe)

  • Измените libyara/Makefile.am:

    • после строки:
    root@kitploit:~
    libyara_la_LDFLAGS = -version-number 3:8:1
    
    • добавьте:
    root@kitploit:~
    libyara_la_LDFLAGS += -LPATH_TO_PYTHON3.*_LIB -lpython3.*m -ljansson 
    
  • Скомпилируйте! `

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