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

rhabdomancer v0.10.0

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

साझा करें

rhabdomancer

build doc

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

-- मार्क डाउड

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

संकलन

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

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

उपयोग

  1. सुनिश्चित करें कि IDA एक वैध लाइसेंस के साथ ठीक से कॉन्फ़िगर किया गया है।
  2. यदि आवश्यक हो तो conf/rhabdomancer.toml में ज्ञात खराब API फ़ंक्शनों की सूची को अनुकूलित करें। आप RHABDOMANCER_CONFIG पर्यावरण चर सेट करके डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल स्थान को ओवरराइड कर सकते हैं।
  3. सुनिश्चित करें कि IDADIR पर्यावरण चर सेट है यदि आपका IDA इंस्टॉलेशन एक गैर-मानक स्थान पर है।
  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 की शैली में एक बुनियादी नियमसेट लागू करें।

श्रेणियाँ