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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
LCSAJdump — ROP गैजेट डिटेक्शन के लिए एक ML-संचालित ग्राफ-आधारित बहु-आर्किटेक्चर दृष्टिकोण | Kitploit
उपकरण/GitHubGitHub/chris1sflaggin/lcsajdump
स्थैतिक विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडबाइनरी विश्लेषणमशीन लर्निंगपेपर और शोधलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubchris1sflaggin/lcsajdump

LCSAJdump

ROP गैजेट डिटेक्शन के लिए एक ML-संचालित ग्राफ-आधारित बहु-आर्किटेक्चर दृष्टिकोण

2721 महीना पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
वेबसाइट

LCSAJdump लोगो

LCSAJdump

PyPI Downloads

स्वचालित गैजेट खोज के लिए सार्वभौमिक ग्राफ़-आधारित फ्रेमवर्क

Status License: MIT



LCSAJdump एक स्थैतिक विश्लेषण फ्रेमवर्क है जो रिटर्न-ओरिएंटेड प्रोग्रामिंग (ROP) और जंप-ओरिएंटेड प्रोग्रामिंग (JOP) गैजेट खोजने के लिए डिज़ाइन किया गया है। पारंपरिक स्कैनर के विपरीत, LCSAJdump आर्किटेक्चर-अज्ञेय है और सामान्य रैखिक उपकरणों के लिए अदृश्य कमजोरियों को उजागर करने के लिए ग्राफ़-आधारित दृष्टिकोण का उपयोग करता है।


LCSAJdump क्यों?

सामान्य ROP स्कैनर बाइनरी के निष्पादन योग्य बाइट्स पर एक रैखिक "स्लाइडिंग-विंडो" दृष्टिकोण का उपयोग करते हैं। यह विधि व्यवस्थित रूप से छाया गैजेट (Shadow Gadgets) की पहचान करने में विफल रहती है: निष्पादन श्रृंखलाएं जो बिना शर्त जंप या सशर्त शाखाओं द्वारा जुड़े गैर-सन्निहित मेमोरी ब्लॉकों को पार करती हैं।

LCSAJdump LCSAJ (लीनियर कोड सीक्वेंस एंड जंप) विश्लेषण के माध्यम से कंट्रोल-फ्लो ग्राफ़ (CFG) का पुनर्निर्माण करके इस सीमा को दूर करता है। बाइनरी को बेसिक ब्लॉकों के एक निर्देशित ग्राफ़ के रूप में मॉडल करके, उपकरण पहचानता है:

  1. सन्निहित गैजेट: मानक रैखिक अनुक्रम जो कंट्रोल-फ्लो ट्रांसफर में समाप्त होते हैं।
  2. छाया गैजेट (गैर-सन्निहित): जटिल श्रृंखलाएं जो "खराब बाइट्स" (जैसे, नल बाइट्स) को बायपास करने के लिए उन निर्देशों का उपयोग करती हैं जो रैखिक स्कैनिंग के माध्यम से अन्यथा अप्राप्य होंगी।

प्रमुख विशेषताएं

  • मल्टी-आर्किटेक्चर समर्थन: RISC-V (64GC), x86-64, और ARM64 के लिए मूल समर्थन, मॉड्यूलर प्रोफाइल के माध्यम से अन्य आर्किटेक्चरों तक आसानी से विस्तार योग्य।
  • ग्राफ़-आधारित विश्लेषण: .text अनुभाग को LCSAJ बेसिक ब्लॉकों में विभाजित करता है और एक कस्टम-निर्मित रिवर्स कंट्रोल-फ्लो ग्राफ़ (हल्का आसन्नता प्रतिनिधित्व, कोई भारी ग्राफ़ निर्भरता नहीं) के माध्यम से प्रवाह संबंधों का पुनर्निर्माण करता है।
  • इंद्रधनुष BFS एल्गोरिथ्म: कंट्रोल-फ्लो सिंक से शुरू होने वाली स्वामित्व वाली बैकवर्ड चौड़ाई-प्रथम खोज। अब इसमें O(1) अर्ली-ड्रॉप विशिष्टता फ़िल्टर और हार्ड-कैप निर्देश सीमाएं हैं जो स्थिति विस्फोट को रोकती हैं और घने CISC बाइनरी पर भी अति-तेज़ विश्लेषण सुनिश्चित करती हैं।
  • आलसी ग्राफ़ निर्माण: ग्राफ़ निर्माण केवल --depth हॉप के भीतर गैजेट टेल से पहुंच योग्य नोड्स को बनाए रखता है, जिससे बड़ी बाइनरी (जैसे, libc) पर मेमोरी और बिल्ड समय में भारी कमी आती है, जबकि समान परिणाम देता है।
  • दो-चरणीय रैंकिंग इंजन: एक हाइपर-फास्ट ह्यूरिस्टिक बेसलाइन (Optuna के माध्यम से बेयसियन-ऑप्टिमाइज़्ड) को एक डीप-लर्निंग LightGBM ML मॉडल के साथ जोड़ता है जो संरचनात्मक और शब्दार्थ सुविधाओं का उपयोग करके गैजेट गुणवत्ता को परिष्कृत करता है।
  • शून्य-ओवरहेड अनुमान: ML मॉडल मूल रूप से एकीकृत है और डिफ़ॉल्ट रूप से चलता है, सेकंडों में हजारों नोड्स को संसाधित करता है। यह एक अत्यधिक प्रभावी फ़िल्टर के रूप में कार्य करता है, शोर करने वाले जंप को अस्वीकार करता है और स्वच्छ, अत्यधिक नियंत्रणीय गैजेट श्रृंखलाओं को लौटाता है। Hugging Face पर होस्ट किया गया।
  • प्रूनिंग पैरामीटर: विश्लेषण गहराई और प्रदर्शन को संतुलित करने के लिए कॉन्फ़िगरेबल "डार्कनेस" फ़ैक्टर, चक्रीय ग्राफ़ में अनंत लूप को रोकता है।

समर्थित आर्किटेक्चर

(देखें बेंचमार्क)

LCSAJdump को सार्वभौमिक बनाने के लिए डिज़ाइन किया गया है। वर्तमान में समर्थित:

  • RISC-V 64-बिट (RV64GC): संपीड़ित 16-बिट निर्देशों के लिए पूर्ण समर्थन।
  • x86-64: चर-लंबाई वाले ओवरलैपिंग निर्देशों को संभालता है। मेमोरी विस्फोट के बिना घने ग्राफ़ को सुरक्षित रूप से नेविगेट करता है।
  • ARM64: 32-बिट निर्देशों को संभालता है और सख्त ह्यूरिस्टिक पेनल्टी के माध्यम से फूला हुआ गैजेट गहराई से फ़िल्टर करता है।
  • अन्य आर्किटेक्चर: config.py में नई प्रोफाइल परिभाषित करके आसानी से कार्यान्वित किया जा सकता है।

स्थापना

Pip के माध्यम से (अनुशंसित)

root@kitploit:~
pip install lcsajdump

स्रोत से (डेवलपमेंट)

root@kitploit:~
git clone [https://github.com/Chris1sFlaggin/LCSAJdump.git](https://github.com/Chris1sFlaggin/LCSAJdump.git)
cd LCSAJdump
pip install -r requirements.txt


उपयोग

LCSAJdump सटीक बाइनरी विश्लेषण के लिए एक शक्तिशाली CLI प्रदान करता है:

मानक विश्लेषण (डिफ़ॉल्ट RISC-V):

root@kitploit:~
python LCSAJdump.py <path_to_binary>

उन्नत विश्लेषण (आर्किटेक्चर और आउटपुट फ़ाइल निर्दिष्ट करना):

root@kitploit:~
lcsajdump -a riscv64 -d 15 -k 10 -l 20 -o gadgets.txt <path_to_binary>

JSON के रूप में निर्यात करें बैड-चार फ़िल्टर के साथ:

root@kitploit:~
lcsajdump -a x86_64 -d 20 -k 5 -b "000a0d" --json -o gadgets.json <path_to_binary>

नोट: JSON को फ़ाइल में सहेजने के लिए --json के बाद -o का उपयोग करें। --json के बिना, -o सादा टेक्स्ट सहेजता है।

सादा टेक्स्ट आउटपुट सहेजें:

root@kitploit:~
lcsajdump -a riscv64 -d 15 -k 10 -l 20 -o gadgets.txt <path_to_binary>

सभी निष्पादन योग्य अनुभागों का विश्लेषण करें:

root@kitploit:~
lcsajdump --all-exec -d 25 -k 10 -l 30 <path_to_binary>

सख्ती से एल्गोरिथमिक रैंकिंग बलपूर्वक लागू करें (ML को बायपास करें):

root@kitploit:~
lcsajdump --algo <path_to_binary>

CLI विकल्प



सटीकता और बेंचमार्क

LCSAJdump benchmarkTests/ निर्देशिका में स्थित एक कठोर, क्रमिक रूप से मान्य परीक्षण सूट द्वारा समर्थित है।

सिमैंटिक फीचर इंजीनियरिंग के 14 प्रमुख पुनरावृत्तियों के माध्यम से, हाइब्रिड मॉडल ने विशुद्ध रूप से वाक्यात्मक ह्यूरिस्टिक के बजाय वास्तविक मेमोरी साइड-इफेक्ट्स (angr प्रतीकात्मक निष्पादन के माध्यम से निकाले गए) के आधार पर गैजेट को अलग करना सीख लिया है।

समूह-जागरूक 5-फोल्ड क्रॉस-वैलिडेशन (प्रशिक्षण के दौरान परीक्षण बाइनरी कभी नहीं देखी गई) के साथ मूल्यांकन किया गया, रैंकर NDCG@1 = 0.914 ± 0.047 और NDCG@10 = 0.922 ± 0.052 प्राप्त करता है, जिसका अर्थ है कि सबसे उपयोगी गैजेट लगातार आउटपुट के शीर्ष पर रखे जाते हैं। दो-चरणीय इंजन सफलतापूर्वक स्वच्छ स्टैक-पॉपिंग अनुक्रमों और ret2csu-जैसे कॉल को प्राथमिकता देता है, जबकि क्रैश-प्रोन फिक्स्ड-ऑफ़सेट जंप को भारी दंडित करता है जो पारंपरिक स्थैतिक स्कैनर को धोखा देते हैं।


डेवलपर और ML गाइड

रिपॉजिटरी को अंतिम उपयोगकर्ताओं और ML शोधकर्ताओं दोनों का समर्थन करने के लिए संरचित किया गया है।

  • प्रोडक्शन इंजन: कोर CLI Hugging Face पर होस्ट किए गए मॉडल का उपयोग करके अनुमान इंजन को सहजता से एकीकृत करता है, जिसमें मैन्युअल मॉडल लोडिंग की आवश्यकता नहीं होती है।
  • ML पाइपलाइन: lcsajdump/ml_study/ निर्देशिका में मॉडलों को प्रशिक्षित करने के लिए उपयोग की जाने वाली पूर्ण पाइपलाइन शामिल है:
    • build_dataset.py: CTF बाइनरी के एक कोर्पस से संरचनात्मक और शब्दार्थ सुविधाएं निकालता है।
    • train_model.py: LightGBM LambdaRank मॉडल को प्रशिक्षित करता है और .pkl मॉडल आउटपुट करता है।
    • kfold_cv.py: K-Fold क्रॉस वैलिडेशन का उपयोग करके डेटासेट को मान्य करता है।

योगदान (फोर्क के लिए खुला!)

फ्रेमवर्क नए कार्यान्वयन के लिए खुला है। कोई नया आर्किटेक्चर जोड़ने के लिए:

  1. रिपॉज़िटरी को फोर्क करें।
  2. lcsajdump/core/config.py खोलें।
  3. ARCH_PROFILES शब्दकोश में एक नई प्रोफाइल जोड़ें, वांछित आर्किटेक्चर (जैसे, x86_64) के लिए जंप मेनमोनिक, रिटर्न मेनमोनिक और रजिस्टर को परिभाषित करें।
  4. एक पुल रिक्वेस्ट सबमिट करें।

लाइसेंस

यह प्रोजेक्ट MIT लाइसेंस के तहत जारी किया गया है। विवरण के लिए LICENSE फ़ाइल देखें।


प्रोजेक्ट लिंक

प्रोजेक्ट वेब पेज पर जाएं: LCSAJdump वेब पेज


Chris1sflaggin द्वारा स्वचालित गैजेट खोज के लिए एक शोध प्रोजेक्ट के रूप में बनाया गया।
टूल डाउनलोड करें
फ़्लैगप्रकारडिफ़ॉल्टविवरण
-a, --archटेक्स्टautoलक्ष्य आर्किटेक्चर (auto, riscv64, x86_64, arm64). ELF हेडर से स्वतः पता लगाया गया.
-d, --depthपूर्णांक20LCSAJ ब्लॉकों में अधिकतम खोज गहराई। श्रृंखला की लंबाई नियंत्रित करता है.
-k, --darknessपूर्णांक5प्रूनिंग थ्रेशोल्ड — प्रति नोड अधिकतम विज़िट। उच्च = अधिक गैजेट, धीमा स्कैन.
-l, --limitपूर्णांक10आउटपुट में प्रदर्शित करने के लिए गैजेट की अधिकतम संख्या.
-s, --min-scoreपूर्णांक0परिणामों में प्रकट होने के लिए गैजेट के लिए न्यूनतम ह्यूरिस्टिक स्कोर.
-i, --instructionsपूर्णांक15एकल LCSAJ नोड में निहित निर्देशों की अधिकतम संख्या.
-v, --verboseध्वज—विस्तृत प्रति-गैजेट परिणामों के लिए वर्बोज़ आउटपुट सक्षम करें.
-o, --outputपथ—आउटपुट को फ़ाइल में लिखें। डिफ़ॉल्ट रूप से सादा टेक्स्ट; JSON आउटपुट के लिए --json के साथ उपयोग करें.
-b, --bad-charsटेक्स्ट—गैजेट पतों से फ़िल्टर करने के लिए हेक्स बाइट्स (जैसे "000a0d").
--jsonध्वज—गैजेट को संरचित JSON के रूप में आउटपुट करें। फ़ाइल में सहेजने के लिए -o के साथ संयोजित करें.
--all-execध्वज—सभी निष्पादन योग्य अनुभागों का विश्लेषण करें, केवल .text नहीं.
-al, --algoध्वज—सख्ती से एल्गोरिथमिक रैंकिंग का उपयोग करें (ML को बायपास करें).
--versionध्वज—स्थापित संस्करण दिखाएं और बाहर निकलें.
--helpध्वज—सहायता संदेश दिखाएं और बाहर निकलें.