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

conf/rhabdomancer.toml.أسهل طريقة للحصول على أحدث إصدار هي عبر crates.io:
export IDADIR=/path/to/ida # إذا لم يتم تعيينه، سيتحقق سكربت البناء من المواقع الشائعة
cargo install rhabdomancer --locked
$env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
$env:PATH="\path\to\ida;$env:PATH"
$env:IDADIR="\path\to\ida" # إذا لم يتم تعيينه، سيتحقق سكربت البناء من المواقع الشائعة
cargo install rhabdomancer --locked
بدلاً من ذلك، يمكنك البناء من المصدر:
git clone --depth 1 https://github.com/0xdea/rhabdomancer
cd rhabdomancer
export IDADIR=/path/to/ida # إذا لم يتم تعيينه، سيتحقق سكربت البناء من المواقع الشائعة
cargo build --release --locked
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" # إذا لم يتم تعيينه، سيتحقق سكربت البناء من المواقع الشائعة
cargo build --release --locked
conf/rhabdomancer.toml إذا لزم الأمر. يمكنك تجاوز موقع ملف الإعداد الافتراضي عن طريق تعيين متغير البيئة RHABDOMANCER_CONFIG.IDADIR إذا كان تثبيت IDA لديك في موقع غير قياسي.rhabdomancer <binary_file>
.i64؛ وإلا، سيتم إنشاء ملف IDB جديد..i64 باستخدام IDA.View > Open subviews > Bookmarks[!NOTE] يضيف Rhabdomancer أيضاً تعليقات في مواقع الاستدعاءات المميزة.
يتم دعم أحدث إصدار من IDA رسمياً فقط، لكن الإصدارات الأقدم قد تعمل أيضاً. يلخص الجدول التالي أحدث إصدار متوافق لكل إصدار من IDA:
| إصدار IDA | أحدث إصدار متوافق |
|---|---|
| v9.0.240925 | v0.2.4 |
| v9.0.241217 | v0.3.5 |
| v9.1.250226 | v0.6.2 |
| v9.2.250908 | v0.7.6 |
| v9.3.260213 | v0.8.1 |
| v9.3.260327 | v0.9.0 |
| v9.3.260421 | v0.9.3 |
| v9.4.260714 | الإصدار الحالي |
[!NOTE] راجع توثيق idalib-rs للحصول على معلومات إضافية.
تم دعم تطوير هذا المشروع من قبل المنظمات التالية:
normalize_name لتغطية المزيد من الحالات.