
مساعد أبحاث الثغرات الأمنية يستخرج الكود الزائف من مفكك IDA Hex-Rays.
"الاختراق هو انضباط مساءلة جميع افتراضاتك طوال الوقت."
-- Dave Aitel
Haruspex هو إضافة IDA سريعة للغاية تعمل بدون واجهة رسومية، وتستخرج الكود الزائف الناتج عن مفكك الترجمة (decompiler) الخاص بـ IDA بصيغة يُفترض أن تكون مناسبة للاستيراد إلى بيئة تطوير متكاملة (IDE)، أو لتحليلها بواسطة أدوات التحليل الساكن مثل Semgrep، أو weggli، أو oneiromancer.

decompile_to_file] لتفكيك دالة وحفظ الكود الزائف وتعريفات الأنواع الخاصة بها على القرص.أسهل طريقة للحصول على أحدث إصدار هي عبر crates.io:
export IDADIR=/path/to/ida # if not set, the build script will check common locations
cargo install haruspex --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 haruspex --locked
بدلاً من ذلك، يمكنك البناء من المصدر:
git clone --depth 1 https://github.com/0xdea/haruspex
cd haruspex
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/haruspex
cd haruspex
$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
IDADIR إذا كان تثبيت IDA لديك في موقع غير قياسي.haruspex <binary_file>
binary_file.dec:
vim <binary_file>.dec
code <binary_file>.dec
يُدعم رسميًا أحدث إصدار من 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.5 |
| v9.3.260213 | v0.8.1 |
| v9.3.260327 | v0.9.0 |
| v9.3.260421 | v0.9.3 |
| v9.4.260714 | الإصدار الحالي |
| v9.4.260915 | الإصدار الحالي |
[!NOTE] راجع وثائق idalib-rs للحصول على معلومات إضافية.
حظي تطوير هذا المشروع بدعم المنظمات التالية:
.cpp بدلاً من .c لإخراج الكود الزائف (انظر هذه المشكلة)؟