Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
SAFE — SAFE: बाइनरी समानता के लिए स्व-ध्यान फ़ंक्शन एम्बेडिंग्स | Kitploit
उपकरण/GitHubGitHub/gadiluna/safe
रिवर्स इंजीनियरिंगबाइनरी विश्लेषणमशीन लर्निंगपेपर और शोध
GitHubgadiluna/safe

SAFE

SAFE: बाइनरी समानता के लिए स्व-ध्यान फ़ंक्शन एम्बेडिंग्स

रिपॉजिटरी देखें
176413 साल पहले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

यह AMD64 आर्किटेक्चर के लिए फ़्रीज़ किया गया TensorFlow प्रशिक्षित मॉडल है। आप इसे अपने प्रोजेक्ट में इस प्रकार आयात कर सकते हैं:

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 फ़ोल्डर में दो फ़ाइलें हैं। एक मैट्रिक्स जहाँ प्रत्येक पंक्ति एक asm निर्देश का एम्बेडिंग है। एक json फ़ाइल जिसमें asm निर्देशों को उपरोक्त मैट्रिक्स की पंक्ति संख्याओं से मैप करने वाला एक शब्दकोश है। फ़ाइल देखें: asm_embedding/InstructionsConverter.py

मॉडल को प्रशिक्षित करें

यदि आप हमारे डेटासेट का उपयोग करके मॉडल को प्रशिक्षित करना चाहते हैं, तो आपको पहले इसका उपयोग करना होगा:

root@kitploit:~
 python3 downloader.py -td

यह डेटासेट को data फ़ोल्डर में डाउनलोड करेगा। ध्यान दें कि डेटासेट संपीड़ित हैं, इसलिए आपको उन्हें स्वयं डीकंप्रेस करना होगा। यह डेटा sqlite डेटाबेस होगा। प्रशिक्षण शुरू करने के लिए neural_network/train.sh का उपयोग करें। db को train.sh में पैरामीटर बदलकर चुना जा सकता है। यदि आप डेटासेट के बारे में अधिक जानकारी चाहते हैं, तो हमारा पेपर देखें।

अपना स्वयं का डेटासेट बनाएँ

यदि आप अपना स्वयं का डेटासेट बनाना चाहते हैं, तो आप dataset creation फ़ोल्डर में ExperimentUtil स्क्रिप्ट का उपयोग कर सकते हैं।

एक फंक्शन ज्ञान आधार बनाएँ

यदि आप SAFE बाइनरी कोड खोज इंजन का उपयोग करना चाहते हैं, तो आप ज्ञान आधार बनाने के लिए ExperimentUtil स्क्रिप्ट का उपयोग कर सकते हैं। फिर आप function_search में स्क्रिप्ट का उपयोग करके इसमें खोज सकते हैं।

संबंधित परियोजनाएँ

  • YARASAFE: Yara के साथ स्वचालित बाइनरी फंक्शन समानता जाँच (https://github.com/lucamassarelli/yarasafe)
  • SAFEtorch: SAFE तंत्रिका नेटवर्क का Pytorch कार्यान्वयन (https://github.com/facebookresearch/SAFEtorch)

धन्यवाद

हमारे कोड में हम Google ड्राइव से डेटा डाउनलोड करने के लिए godown का उपयोग करते हैं। हम godown के निर्माता circulosmeos को धन्यवाद देते हैं।

हम उपयोगी चर्चाओं के लिए Davide Italiano को धन्यवाद देते हैं।

टूल डाउनलोड करें