
محمّل Ghidra لتنسيق صورة البرامج الثابتة للمودم md1img من MediaTek
محمّل Ghidra لتنسيق صورة البرنامج الثابت للمودم md1img من MediaTek. حاليًا، يتم دعم البرامج الثابتة القائمة على nanoMIPS فقط، لكن الميزات الأساسية قد تظل تعمل إذا اخترت يدويًا بنية مختلفة (مثل MIPS) عند تحميل صورة.
بالنسبة للمودمات القائمة على nanoMIPS، ثبّت إضافة nanoMIPS ISA الخاصة بـ Ghidra إلى جانب هذا المحمّل قبل محاولة تحميل صورة البرنامج الثابت.
في Ghidra، ما عليك سوى استيراد ملف بصيغة md1img إلى المشروع. سيقوم المحمّل باستخراج البرنامج الثابت للمودم وتطبيق أي رموز تصحيح الأخطاء.
بعد التحميل الأولي للبرنامج الثابت وتحديد الدوال INT_InitRegions_C و memcpy و memset، شغّل السكربتين MtkInitRegions.java و emulate_custom_mk_ram_info.py من مدير السكربتات (بهذا الترتيب) لتحديد مناطق ذاكرة إضافية تلقائيًا.
تأكد من تعريف متغير البيئة أو خاصية المشروع GHIDRA_INSTALL_DIR لكي يعمل Gradle بشكل صحيح في Eclipse. راجع https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties لمعرفة مكان وضع ملف gradle.properties الذي يحتوي على تعريف هذه الخاصية.
إذا كنت تعدّل هذا المشروع بالتزامن مع إضافة nanoMIPS ISA، أضف دليل مشروع إضافة nanoMIPS إلى مسار البناء لمشروع Eclipse الخاص بالمحمّل.
استخدم تثبيت Gradle المحلي لديك أو غلاف Gradle المرفق لبناء المشروع من المصدر. تأكد من تحديد دليل تثبيت Ghidra الصحيح في خاصية GHIDRA_INSTALL_DIR.
$ ./gradlew -PGHIDRA_INSTALL_DIR=<ghidra_path>