
مستودع لدعم SLEIGH من أجل مجموعات تعليمات المعالجات النادرة
وحدات معالج Ghidra (SLEIGH) لمعماريات وحدات المعالجة المركزية وDSP وGPU غير الشائعة. الهدف: Ghidra 12.1.4.
يقدّم هذا المشروع إلى Ghidra مجموعة المعماريات التي يغطيها Mr-wolf-is-me/IDA-Processor-Modules، وهي مجموعة من وحدات معالج IDA Pro. كل وحدة هنا هي النظير في Ghidra لواحدة من وحدات IDA المدرجة هناك.
| الوحدة | المعمارية | معرّفات اللغة | وحدة IDA الأصلية |
|---|---|---|---|
| PRU | TI PRU / PRU-ICSS، مراجعات النواة V0–V4 | PRU:LE:32:v0 … PRU:LE:32:v4 | pru-ida |
| MicroBlaze | AMD/Xilinx MicroBlaze، 32/64-bit، BE/LE | MicroBlaze:{BE,LE}:{32,64}:default | microblaze-ida |
| xCORE | XMOS xCORE XS1، XS2 (xCORE-200)، XS3 (xcore.ai) | xCORE:LE:32:XS1، XS2، XS3 | xcore-ida |
| C7x | TI C7000 DSP (C7100، C7120، C7504، C7524) | C7x:LE:64:C7100، C7120، C7504، C7524 | c7x-ida |
| SASS | NVIDIA GPU SASS، من Kepler حتى Blackwell | SASS:LE:64:SM35، SM52، SM60، SM70، SM75، SM80، SM86، SM89، SM90، SM100، SM120 | sass-ida |
يسرد ملف README الخاص بكل وحدة متغيّرات اللغة الخاصة بها، ومدى مطابقتها للمُفكِّك المرجعي، وما تمثّله p-code، والثغرات المعروفة، وكيفية تشغيل اختباراتها. يتتبّع STATUS.md ما يعمل وما لا يعمل عبر جميع الوحدات، بالإضافة إلى الدروس المستفادة.
تُوزَّع وحدات IDA كملفات zip للإصدارات بموجب شروط تحظر الأعمال المشتقة؛ أما المستودعات نفسها فلا تحتوي سوى ملفات README والتراخيص ولقطات الشاشة. هذا المشروع هو تنفيذ مستقل ونظيف الغرفة (clean-room)، وليس نقلًا لذلك الكود:
dispru/dis7x، GNU binutils، LLVM، NVIDIA nvdisasm).يعود الفضل في الفكرة وفي اختيار هذه المعماريات إلى مؤلف IDA-Processor-Modules.
كل دليل وحدة هو امتداد Ghidra قياسي.
ملفات zip الجاهزة: تبني سير عمل Release builds كل
وحدة لأحدث ثلاثة إصدارات من Ghidra. ينشر كل وسم v* ملفات zip على
صفحة Releases؛ أما عمليات الدفع الأخرى فتُبقيها كـ
مخرجات سير العمل. لا يُثبَّت ملف zip إلا في إصدار Ghidra المذكور في اسمه.
ابنِ ملفات zip الخاصة بالامتداد بنفسك:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
يقوم السكربت بترجمة مواصفات SLEIGH باستخدام مترجم Ghidra ذلك، ويبني كل وحدة باستخدام
غلاف Gradle الذي يوفره Ghidra في support/gradle. تتضمن PRU وMicroBlaze وSASS شيفرة Java (امتدادات
محمل ELF)، لذا تتطلب عملية البناء JDK كاملًا مع javac (حزمة JRE فقط غير
كافية): JDK 21 أو أحدث لـ Ghidra 12.1، وJDK 25 لـ Ghidra 12.2. وجّه JAVA_HOME إليه.
ثبّت ملف zip عبر File → Install Extensions في Ghidra، ثم أعد تشغيل Ghidra.
للتطوير، أنشئ رابطًا رمزيًا لكل وحدة داخل تثبيت Ghidra وترجم مواصفات SLEIGH:
export GHIDRA_INSTALL_DIR=/opt/ghidra_12.1.4_PUBLIC
tools/link-modules.sh
for d in */data/languages; do "$GHIDRA_INSTALL_DIR/support/sleigh" -a "$d"; done
tools/ghidra-dis.sh <language-id> <raw.bin> يطبع تفكيكًا خطيًا بلا واجهة لملف ثنائي
خام، وهو مفيد للفحوصات السريعة.
MIT. يغطي هذا الترخيص الكود الموجود في هذا المستودع فقط. ولا يغطي وحدات IDA الأصلية، التي لها شروطها الخاصة.