
Загрузчик Ghidra для формата образа прошивки модема MediaTek md1img
Загрузчик Ghidra для формата образа прошивки модема MediaTek md1img. В настоящее время поддерживается только прошивка на базе nanoMIPS, но базовые функции могут работать, если при загрузке образа вручную выбрать другую архитектуру (например, MIPS).
Для модемов на базе nanoMIPS установите плагин nanoMIPS ISA для Ghidra вместе с этим загрузчиком перед попыткой загрузить образ прошивки.
В Ghidra просто импортируйте файл формата md1img в проект. Загрузчик извлечёт прошивку модема и применит все отладочные символы.
После первоначальной загрузки прошивки и идентификации функций INT_InitRegions_C, memcpy и memset запустите скрипты MtkInitRegions.java и emulate_custom_mk_ram_info.py из Script Manager (в указанном порядке), чтобы автоматически определить дополнительные области памяти.
Убедитесь, что определена переменная окружения или свойство проекта 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 Wrapper для сборки проекта из исходного кода. Убедитесь, что в свойстве GHIDRA_INSTALL_DIR указан правильный каталог установки Ghidra.
$ ./gradlew -PGHIDRA_INSTALL_DIR=<ghidra_path>