Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
yarasafe — تضمينات SAFE لمطابقة الدوال في yara | Kitploit
أدوات/GitHubGitHub/lucamassarelli/yarasafe
تحليل الثغرات الأمنيةالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةتعلم الآلة
GitHublucamassarelli/yarasafe

yarasafe

تضمينات SAFE لمطابقة الدوال في yara

عرض المستودع
10014منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

YARASAFE - التحقق التلقائي من تشابه الدوال الثنائية باستخدام Yara

SAFE هي أداة تم تطويرها لإنشاء تمثيلات الدوال الثنائية (Binary Functions Embedding) بواسطة 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 لهذا المستودع.

بمجرد تثبيت الإضافة، يمكنك البدء في إنشاء تمثيلات (embeddings) للدالة التي تريد مطابقتها. يمكن إدراج هذه التمثيلات في قواعد 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-rule الخاصة بك، تحتاج أولاً إلى إنشاء التمثيلات (embeddings) لدالتك. لتحقيق ذلك، يمكنك استخدام إضافة IDA Pro المرفقة في هذا المستودع. داخل مجلد ida-pro-plugin يمكنك العثور على جميع المعلومات حول كيفية تشغيل الإضافة!

بمجرد حصولك على تمثيلات دوالك، تحتاج فقط إلى إنشاء القاعدة. مثال على قاعدة safe-yara-rule هو:

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 
    
  • قم بالترجمة!

تنزيل الأداة