العودة إلى التحديثات
New releaseAug 20, 2026

rhabdomancer v0.10.0

مساعد أبحاث الثغرات الأمنية الذي يحدد مواقع استدعاءات دوال API التي قد تكون غير آمنة في ملف ثنائي.

مشاركة

rhabdomancer

build doc

"الطريق إلى الثغرات القابلة للاستغلال مُمهّد بثغرات غير قابلة للاستغلال."

-- مارك دود

Rhabdomancer هو إضافة IDA سريعة جدًا تعمل بدون واجهة رسومية (headless) وتحدد مواقع استدعاءات دوال واجهة برمجة التطبيقات (API) التي قد تكون غير آمنة في ملف ثنائي. يمكن للمدقّقين تتبّع المسار عكسيًا من هذه النقاط المرشّحة للعثور على مسارات تسمح بالوصول إلى مدخلات غير موثوقة.

الميزات

  • سرعة فائقة وتجربة استخدام بدون واجهة رسومية بفضل IDA 9.x وربطات idalib-rs بلغة Rust.
  • دعم للأهداف الثنائية المكتوبة بـ C/C++ والمُترجَمة لأي بنية معمارية يدعمها IDA.
  • تُطبع مواقع استدعاءات الدوال الخطيرة إلى 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
    

الترجمة (Compiling)

بدلاً من ذلك، يمكنك البناء من المصدر:

  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. خصّص قائمة دوال API الخطيرة المعروفة في conf/rhabdomancer.toml إذا لزم الأمر. يمكنك تجاوز موقع ملف الإعداد الافتراضي عن طريق تعيين متغير البيئة RHABDOMANCER_CONFIG.
  3. تأكد من تعيين متغير البيئة IDADIR إذا كان تثبيت IDA لديك في موقع غير قياسي.
  4. شغّل كما يلي:
    rhabdomancer <binary_file>
    
    سيتم تحديث أي ملف IDB موجود بامتداد .i64؛ وإلا، سيتم إنشاء ملف IDB جديد.
  5. افتح ملف IDB الناتج بامتداد .i64 باستخدام IDA.
  6. اختر View > Open subviews > Bookmarks
  7. استمتع بنتائجك مجمّعة بشكل ملائم في نافذة IDA.

[!NOTE] يضيف Rhabdomancer أيضًا تعليقات في مواقع الاستدعاءات المحددة.

التوافق

يُدعم رسميًا أحدث إصدار من IDA فقط، لكن الإصدارات الأقدم قد تعمل أيضًا. يلخّص الجدول التالي أحدث إصدار متوافق لكل إصدار من IDA:

IDA versionLatest compatible release
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.260714current release

[!NOTE] راجع وثائق idalib-rs للحصول على معلومات إضافية.

الاعتمادات

تم دعم تطوير هذا المشروع من قبل المؤسسات التالية:

سجل التغييرات

المهام المستقبلية (TODO)

  • إثراء قائمة دوال API الخطيرة المعروفة بشكل أكبر (انظر https://github.com/0xdea/semgrep-rules).
  • النظر في توسيع نطاق التطبيع في normalize_name لتغطية المزيد من الحالات.
  • تنفيذ مجموعة قواعد أساسية على غرار VulFi و VulnFanatic.

الفئات