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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/pr0me/xtride
स्थैतिक विश्लेषणरिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषणमशीन लर्निंगपेपर और शोधलर्निंग और शिक्षाफर्मवेयर विश्लेषण
GitHubpr0me/xtride

xtride

बायनरीज़ के लिए N-ग्राम-आधारित प्रकार पुनर्प्राप्ति उपकरण, डीकंपाइल्ड कोड से संरचनाओं और फ़ंक्शन हस्ताक्षरों को उच्च थ्रूपुट और स्वचालित पाइपलाइनों के लिए कार्रवाई योग्य आत्मविश्वास स्कोर के साथ पुनर्प्राप्त करता है।

रिपॉजिटरी देखें
26132 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

XTRIDE: N-gram-आधारित व्यावहारिक प्रकार पुनर्प्राप्ति

परिचय

xtride पेपर हम XTRIDE प्रस्तुत करते हैं, जो बाइनरी के लिए प्रकार पुनर्प्राप्ति पर एक बेहतर n-gram-आधारित (cf. STRIDE) दृष्टिकोण है जो व्यावहारिकता पर केंद्रित है: अत्यधिक अनुकूलित थ्रूपुट और कार्रवाई योग्य विश्वास स्कोर स्वचालित पाइपलाइनों में तैनाती की अनुमति देते हैं। जब स्ट्रक्चर पुनर्प्राप्ति में अत्याधुनिक से तुलना की जाती है, तो हमारी विधि 70 से 2300× तेज़ होने के साथ तुलनीय प्रदर्शन प्राप्त करती है।




निर्माण निर्देश

./bin में CLI टूल के लिए hdf5 के लिए लाइब्रेरी संस्करण 1.8.4 या बाद का स्थापित होना आवश्यक है (जैसा कि क्रेट के दस्तावेज़ों में है)। नवीनतम संस्करण के साथ बिल्ड MacOS पर विफल हो जाता है, हम hdf5 v1.10 स्थापित करने की अनुशंसा करते हैं, उदाहरण के लिए, इसके साथ

root@kitploit:~
brew install [email protected]

CLI टूल का उपयोग कैसे करें

  1. फॉर्म का टोकनयुक्त डेटासेट बनाएं, डेटासेट तैयारी देखें।
  2. डेटासेट विभाजन बनाएं
    root@kitploit:~
    cargo run --release -- create-dataset -i ../new_dataset/ -o ./
    
  3. शब्दावली बनाएं
    root@kitploit:~
    cargo run --release -- build-vocab ./xtride_plus_train.jsonl xtride_plus.vocab -t type
    
  4. n = {2, 4, 8, 12, 48} के लिए ngram डेटाबेस बनाएं (bin/src/db_creation.rs में निर्दिष्ट करें)।
    root@kitploit:~
    cargo run --release -- build-all-dbs -t type -k 5 --flanking -o xtride_plus_dbs/ ./xtride_plus_train.jsonl xtride_plus.vocab
    
  5. परीक्षण सेट विभाजन पर मूल्यांकन करें
    root@kitploit:~
    cargo run --release -- evaluate --threshold-sweep ./xtride_plus_test.jsonl xtride_plus.vocab ./out_xtride.json --flanking --db-dir ./xtride_plus_dbs
    

पुनर्प्राप्ति मोड

एकल डीकंपाइल किए गए फ़ंक्शन लिस्टिंग (सादा पाठ इनपुट) पर सर्वोत्तम-प्रयास प्रकार पुनर्प्राप्ति चलाने के लिए recover का उपयोग करें।

इनपुट अपेक्षाएँ

  • प्रति फ़ाइल एक फ़ंक्शन
  • डीकंपाइलर-शैली प्रतीक नामों की अनुशंसा की जाती है (जैसे, var*, param*, stack*, iVar*, sub_*)
  • भविष्यवाणियाँ केवल आपके इनपुट शैली और प्रशिक्षण डेटा वितरण के बीच संरेखण जितनी अच्छी होती हैं

मूल उपयोग उदाहरण

root@kitploit:~
cargo run --release -- recover ./decompiled_function.c \
    --vocab ./xtride_plus.vocab \
    --db-dir ./xtride_plus_dbs \
    --flanking \
    --top-k 5 \

वैकल्पिक फ़्लैग

  • --fn-vocab <path>: स्पष्ट फ़ंक्शन शब्दावली पथ (यदि छोड़ा गया, recover <vocab_stem>.fn.vocab प्रयास करता है)
  • --strip: विरासत पूर्ण स्ट्रिप मोड सक्षम करें (DIRT / STRIDE पिछड़ा-संगतता, सावधानी से उपयोग करें)
  • --threshold <float>: स्कोर कटऑफ से नीचे की भविष्यवाणियाँ छुपाएं (1.0 फ़िल्टरिंग अक्षम करता है)
  • --top-k <int>: प्रति प्रतीक दिखाए गए उम्मीदवारों की संख्या (डिफ़ॉल्ट: 5)

आउटपुट व्याख्या

प्रस्तुत स्कोर मॉडल पाइपलाइन से आत्मविश्वास-शैली रैंकिंग स्कोर हैं। वे सापेक्ष रैंकिंग और फ़िल्टरिंग के लिए उपयोगी हैं, कैलिब्रेटेड संभावनाएँ नहीं। सारांश पहचाने गए प्रतीकों, फ़िल्टर किए गए प्रतीकों और बिना मॉडल आउटपुट वाले प्रतीकों की रिपोर्ट करता है।

प्रदान किए गए मॉडल

हम अपने पेपर में वर्णित $XTRIDE_{PLUS}$ मॉडलों को दोहराने के लिए प्रीप्रोसेस्ड डेटा ./data निर्देशिका में शामिल करते हैं। JSONL फ़ाइलों का उपयोग सीधे शब्दावली निकालने और मॉडल प्रशिक्षित करने के लिए किया जा सकता है (चरण 3 और आगे, bin/src/db_creation.rs में 16-db कॉन्फ़िगरेशन चुनें)। जबकि प्रशिक्षण डेटासेट में विभिन्न प्रकार के बाइनरी से बड़ी मात्रा में डेटा शामिल है, हम दोहराना चाहते हैं कि n-gram-आधारित दृष्टिकोणों की सामान्यीकरण क्षमता सीमित है। हम हमेशा डेटासेट में डोमेन-विशिष्ट नमूने जोड़ने की अनुशंसा करते हैं, इस पर निर्भर करता है कि आप मॉडल को कहाँ नियोजित करने की योजना बना रहे हैं।

प्रदान किए गए डेटासेट में ऐसे नमूने हैं जो

  • स्ट्रिप किए गए हैं
  • ELF बाइनरी हैं
  • Ghidra से एकत्र किए गए हैं

इस वितरण से भिन्न नमूनों पर अनुमान चलाने का प्रयास संभवतः अनुपयोगी भविष्यवाणियों का परिणाम देगा।

डेटासेट

नए डेटासेट के लिए डेटा निकालने या DIRT डेटासेट पर पुनः प्रशिक्षण और मूल्यांकन करने पर अधिक जानकारी डेटासेट तैयारी दस्तावेज़ में शामिल है।

डीकंपाइलर एकीकरण

retyper मॉड्यूल XTRIDE प्रकार पुनर्प्राप्ति प्रणाली के एक डीकंपाइलर के साथ गहन एकीकरण के लिए एक संदर्भ कार्यान्वयन प्रदर्शित करता है। कार्यक्षमता एक सुविधा फ़्लैग के पीछे गेटेड है और इसे cargo build --features retyper से सक्रिय किया जा सकता है।

हम प्रोग्राम विश्लेषण के लिए Binarly के BIAS फ्रेमवर्क का उपयोग करते हैं जो VulHunt के भाग के रूप में प्रकाशित किया गया था। फ्रेमवर्क में एक अभिव्यंजक टाइपिंग सिस्टम है जो Ghidra डीकंपाइलर बैकएंड के फोर्क के साथ सहजता से एकीकृत होता है जिसका उपयोग आंतरिक रूप से पुनर्प्राप्त अभ्यावेदन को स्यूडो C में उठाने के लिए किया जाता है। हमने इस फोर्क और इसके ffi को इंटरफेस के साथ विस्तारित किया जो डीकंपाइलर में सीधे चर प्रकारों को संशोधित करने की अनुमति देते हैं। यह डीकंपाइलर संदर्भ के भीतर अनुमानित प्रकारों के प्रत्यक्ष अनुप्रयोग को सक्षम बनाता है, जिसमें फ़ील्ड प्रकारों का प्रसार और समान शामिल है।

पहले:बाद में:
प्रकारों के बिनाप्रकार पुनर्प्राप्त

अधिक जानकारी और उदाहरणों के लिए हमारा ब्लॉग पोस्ट देखें।

सामान्य तौर पर, किसी भी डीकंपाइलर एकीकरण के लिए पाठ-आधारित भविष्यवाणियों (शब्दावली से) को एक उपकरण-विशिष्ट प्रतिनिधित्व में अनुवाद परत की आवश्यकता होती है। DIRT में उपयोग किया गया प्रारूप इसकी अनुमति देने के लिए पर्याप्त अभिव्यंजक है, लेकिन प्रकारों के पुनरावर्ती समाधान (जैसे, स्ट्रक्ट में) और ऑफ़सेट और आकारों की मैन्युअल गणना की आवश्यकता होती है (सभी आवश्यक जानकारी मौजूद है, जिसमें पैडिंग एनोटेशन शामिल हैं)। retyper मॉड्यूल के लिए, शब्दावली (और इस प्रकार, प्रशिक्षण डेटासेट) में प्रकारों को क्रमबद्ध BIAS प्रकार होना आवश्यक है। हम वर्तमान में डेटा निष्कर्षण और डेटासेट निर्माण के लिए एक पूर्ण पाइपलाइन प्रकाशित करने की योजना नहीं बना रहे हैं और इस प्रकार इसे पूर्ण PoC के बजाय एक संदर्भ कार्यान्वयन मानते हैं।

उद्धरण

यदि आप इस रिपॉजिटरी और संबंधित पेपर के साथ प्रदान किए गए कोड, तकनीकों या परिणामों का उपयोग करते हैं, तो कृपया हमारे कार्य को निम्नानुसार उद्धृत करें:

root@kitploit:~
@inproceedings{Seidel_Practical_Type_Inference_2026,
    author = {Seidel, Lukas and Thomas, Sam L. and Rieck, Konrad},
    title = {{Practical Type Inference: High-Throughput Recovery of Real-World Structures and Function Signatures}},
    series = {The 16th ACM Conference on Data and Application Security and Privacy},
    month = jun,
    year = {2026},
    url = {https://arxiv.org/abs/2603.08225},
}
टूल डाउनलोड करें