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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SAFE — SAFE: تمثيلات وظائف ذاتية الانتباه لمقارنة الثنائيات | Kitploit
أدوات/GitHubGitHub/gadiluna/safe
الهندسة العكسيةتحليل الملفات الثنائيةتعلم الآلةالأوراق والأبحاث
GitHubgadiluna/safe

SAFE

SAFE: تمثيلات وظائف ذاتية الانتباه لمقارنة الثنائيات

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

الأكثر شعبية

عرض الكل →

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

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

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

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

SAFE : تضمين الدوال الذاتي الانتباه

الورقة

هذا البرنامج هو نتاج بحثنا الأكاديمي. انظر ورقتنا على arXiv: arxiv

إذا استخدمت هذا الكود، يرجى الاستشهاد بورقتنا الأكاديمية على النحو التالي:

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}
}

ما تحتاجه

تحتاج إلى تثبيت radare2 في نظامك.

بداية سريعة

لإنشاء تضمين لدالة:

root@kitploit:~
git clone https://github.com/gadiluna/SAFE.git
pip install -r requirements
chmod +x download_model.sh
./download_model.sh
python safe.py -m data/safe.pb -i helloworld.o -a 100000F30

ماذا تفعل بالتضمين؟

بمجرد حصولك على تضمينين embedding_x و embedding_y يمكنك حساب التشابه بين الدوال المقابلة كما يلي:

root@kitploit:~
from sklearn.metrics.pairwise import cosine_similarity

sim=cosine_similarity(embedding_x, embedding_y)
 

البيانات المطلوبة

يحتاج SAFE إلى القليل من المعلومات ليعمل. اثنان أساسيان: نموذج يخبر SAFE كيف يحول تعليمات التجميع إلى متجهات (نموذج i2v) ونموذج يخبر SAFE كيف يحول دالة ثنائية إلى متجه. كلا النموذجين يمكن تحميلهما باستخدام الأمر

root@kitploit:~
./download_model.sh

يقوم المحمل بتحميل النموذج ووضعه في مجلد data. يجب أن يكون هيكل المجلد بعد التحميل كالتالي.

root@kitploit:~
safe/-- githubcode
     \
      \--data/-----safe.pb
               \
                \---i2v/
            

يحتوي ملف safe.pb على نموذج SAFE المستخدم لتحويل الدوال الثنائية إلى متجهات. يحتوي مجلد i2v على نموذج i2v.

تفاصيل متقدمة

يحتوي هذا القسم على تفاصيل ضرورية لإعادة تجاربنا، إذا كنت مستخدمًا لـ SAFE يمكنك تخطيه.

Safe.pb

هذا هو نموذج TensorFlow المُجمّد والمدرّب لمعمارية AMD64. يمكنك استيراده في مشروعك باستخدام:

root@kitploit:~
 import tensorflow as tf
 
 with tf.gfile.GFile("safe.pb", "rb") as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())

 with tf.Graph().as_default() as graph:
    tf.import_graph_def(graph_def)
    
 sess = tf.Session(graph=graph)

انظر الملف: neural_network/SAFEEmbedder.py

i2v

يحتوي مجلد i2v على ملفين. مصفوفة حيث كل صف هو تضمين لتعليمة تجميع. ملف json يحتوي على قاموس يربط تعليمات التجميع بأرقام الصفوف في المصفوفة أعلاه. انظر الملف: asm_embedding/InstructionsConverter.py

تدريب النموذج

إذا كنت تريد تدريب النموذج باستخدام مجموعات البيانات الخاصة بنا، عليك أولاً استخدام:

root@kitploit:~
 python3 downloader.py -td

سيؤدي هذا إلى تحميل مجموعات البيانات في مجلد data. لاحظ أن مجموعات البيانات مضغوطة لذا عليك فك ضغطها بنفسك. ستكون هذه البيانات قواعد بيانات sqlite. لبدء التدريب استخدم neural_network/train.sh. يمكن تحديد قاعدة البيانات بتغيير المعامل في train.sh. إذا كنت تريد معلومات عن مجموعة البيانات، انظر ورقتنا.

إنشاء مجموعة البيانات الخاصة بك

إذا كنت تريد إنشاء مجموعة البيانات الخاصة بك، يمكنك استخدام البرنامج النصي ExperimentUtil في مجلد dataset creation.

إنشاء قاعدة معرفة للدوال

إذا كنت تريد استخدام محرك بحث الكود الثنائي SAFE، يمكنك استخدام البرنامج النصي ExperimentUtil لإنشاء قاعدة المعرفة. ثم يمكنك البحث من خلالها باستخدام البرنامج النصي في function_search

مشاريع ذات صلة

  • YARASAFE: فحوصات تشابه الدوال الثنائية التلقائية مع Yara (https://github.com/lucamassarelli/yarasafe)
  • SAFEtorch: تنفيذ Pytorch للشبكة العصبية SAFE (https://github.com/facebookresearch/SAFEtorch)

شكر وتقدير

في كودنا نستخدم godown لتحميل البيانات من Google Drive. نشكر circulosmeos، منشئ godown.

نشكر Davide Italiano على المناقشات المفيدة.

تنزيل الأداة