अपडेट पर वापस जाएँ
New releaseAug 20, 2026

rhabdomancer v0.10.0

भेद्यता अनुसंधान सहायक जो बाइनरी फ़ाइल में संभावित रूप से असुरक्षित API फ़ंक्शंस के कॉल्स का पता लगाता है।

साझा करें

rhabdomancer

build doc

"अशोषणीय बग्स शोषण योग्य बग्स का मार्ग प्रशस्त करते हैं।"

-- Mark Dowd

Rhabdomancer एक अत्यंत तेज़ IDA हेडलेस प्लगइन है जो बाइनरी फ़ाइल में संभावित रूप से असुरक्षित API फ़ंक्शनों के कॉल का पता लगाता है। ऑडिटर इन उम्मीदवार बिंदुओं से बैकट्रेस करके उन मार्गों को खोज सकते हैं जो अविश्वसनीय इनपुट तक पहुँच की अनुमति देते हैं।

विशेषताएँ

  • IDA 9.x और idalib-rs Rust बाइंडिंग्स की बदौलत अत्यंत तेज़, हेडलेस उपयोगकर्ता अनुभव।
  • IDA द्वारा कार्यान्वित किसी भी आर्किटेक्चर के लिए संकलित C/C++ बाइनरी टारगेट्स के लिए समर्थन।
  • खराब API फ़ंक्शन कॉल स्थान stdout पर प्रिंट किए जाते हैं और IDB में चिह्नित किए जाते हैं।
  • ज्ञात खराब API फ़ंक्शनों को खतरनाकता के स्तरों में समूहीकृत किया जाता है ताकि ऑडिट कार्य को प्राथमिकता देने में मदद मिल सके।
    • [BAD 0] उच्च प्राथमिकता - वे फ़ंक्शन जिन्हें सामान्यतः असुरक्षित माना जाता है।
    • [BAD 1] मध्यम प्राथमिकता - दिलचस्प फ़ंक्शन जिनकी असुरक्षित उपयोग मामलों के लिए जाँच की जानी चाहिए।
    • [BAD 2] निम्न प्राथमिकता - इन फ़ंक्शनों से जुड़े कोड पथों की सावधानीपूर्वक जाँच की जानी चाहिए।
  • ज्ञात खराब API फ़ंक्शनों की सूची को conf/rhabdomancer.toml संपादित करके आसानी से अनुकूलित किया जा सकता है।

लेख

यह भी देखें

स्थापना

नवीनतम रिलीज़ प्राप्त करने का सबसे आसान तरीका crates.io के माध्यम से है:

  1. IDA डाउनलोड करें, इंस्टॉल करें और कॉन्फ़िगर करें (देखें https://hex-rays.com/ida-pro)।
  2. LLVM/Clang इंस्टॉल करें (देखें https://rust-lang.github.io/rust-bindgen/requirements.html)।
  3. Linux/macOS पर, निम्नानुसार इंस्टॉल करें:
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo install rhabdomancer
    
    वहीं Windows पर, निम्न कमांड का उपयोग करें:
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo install rhabdomancer
    

संकलन

वैकल्पिक रूप से, आप स्रोत से निर्माण कर सकते हैं:

  1. IDA डाउनलोड करें, इंस्टॉल करें और कॉन्फ़िगर करें (देखें https://hex-rays.com/ida-pro)।
  2. LLVM/Clang इंस्टॉल करें (देखें https://rust-lang.github.io/rust-bindgen/requirements.html)।
  3. Linux/macOS पर, निम्नानुसार संकलन करें:
    git clone --depth 1 https://github.com/0xdea/rhabdomancer
    cd rhabdomancer
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo build --release
    
    वहीं Windows पर, निम्न कमांड का उपयोग करें:
    git clone --depth 1 https://github.com/0xdea/rhabdomancer
    cd rhabdomancer
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo build --release
    

उपयोग

  1. सुनिश्चित करें कि IDA एक वैध लाइसेंस के साथ ठीक से कॉन्फ़िगर किया गया है।
  2. यदि आवश्यक हो तो conf/rhabdomancer.toml में ज्ञात खराब API फ़ंक्शनों की सूची अनुकूलित करें। आप RHABDOMANCER_CONFIG पर्यावरण चर सेट करके डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल स्थान को ओवरराइड कर सकते हैं।
  3. यदि आपका IDA इंस्टॉलेशन गैर-मानक स्थान पर है तो सुनिश्चित करें कि IDADIR पर्यावरण चर सेट है।
  4. निम्नानुसार चलाएँ:
    rhabdomancer <binary_file>
    
    कोई भी मौजूदा .i64 IDB फ़ाइल अपडेट की जाएगी; अन्यथा, एक नई IDB फ़ाइल बनाई जाएगी।
  5. परिणामी .i64 IDB फ़ाइल को IDA के साथ खोलें।
  6. चुनें View > Open subviews > Bookmarks
  7. अपने परिणामों का आनंद लें, जो एक IDA विंडो में सुविधाजनक रूप से एकत्र किए गए हैं।

[!NOTE] Rhabdomancer चिह्नित कॉल स्थानों पर टिप्पणियाँ भी जोड़ता है।

अनुकूलता

केवल नवीनतम IDA रिलीज़ आधिकारिक रूप से समर्थित है, लेकिन पुराने संस्करण भी काम कर सकते हैं। निम्न तालिका प्रत्येक IDA संस्करण के लिए नवीनतम संगत रिलीज़ का सारांश प्रस्तुत करती है:

IDA संस्करणनवीनतम संगत रिलीज़
v9.0.240925v0.2.4
v9.0.241217v0.3.5
v9.1.250226v0.6.2
v9.2.250908v0.7.6
v9.3.260213v0.8.1
v9.3.260327v0.9.0
v9.3.260421v0.9.3
v9.4.260714वर्तमान रिलीज़

[!NOTE] अतिरिक्त जानकारी के लिए idalib-rs दस्तावेज़ देखें।

श्रेय

इस परियोजना के विकास को निम्नलिखित संगठनों द्वारा समर्थित किया गया है:

परिवर्तन लॉग

TODO

  • ज्ञात खराब API फ़ंक्शन सूची को और समृद्ध करें (देखें https://github.com/0xdea/semgrep-rules)।
  • अधिक मामलों को ध्यान में रखने के लिए normalize_name में सामान्यीकरण के दायरे को व्यापक बनाने पर विचार करें।
  • VulFi और VulnFanatic की शैली में एक बुनियादी रूलसेट लागू करें।

श्रेणियाँ