
Cargador de Ghidra para el formato de imagen de firmware de módem MediaTek md1img
Cargador de Ghidra para el formato de imagen de firmware de módem md1img de MediaTek. Actualmente, solo se admite firmware basado en nanoMIPS,
pero es posible que las funciones básicas sigan funcionando si eliges manualmente una arquitectura diferente (p. ej., MIPS) al cargar una imagen.
Para módems basados en nanoMIPS, instala el plugin nanoMIPS ISA para Ghidra junto con este cargador antes de intentar cargar la imagen de firmware.
En Ghidra, simplemente importa un archivo de formato md1img al proyecto. El cargador extraerá el firmware
del módem y aplicará cualquier símbolo de depuración.
Después de cargar inicialmente el firmware e identificar las funciones INT_InitRegions_C, memcpy y memset,
ejecuta los scripts MtkInitRegions.java y emulate_custom_mk_ram_info.py desde el Administrador de scripts (en ese orden)
para definir automáticamente regiones de memoria adicionales.
Asegúrate de que la variable de entorno GHIDRA_INSTALL_DIR o la propiedad del proyecto esté definida
para que Gradle funcione correctamente en Eclipse. Consulta https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties para saber dónde colocar el archivo gradle.properties que contiene esta definición de propiedad.
Si modificas este proyecto junto con el plugin nanoMIPS ISA, añade el directorio del proyecto del plugin nanoMIPS a la ruta de compilación del proyecto Eclipse del cargador.
Usa tu instalación local de Gradle o el wrapper de Gradle incluido para compilar el proyecto desde el código fuente.
Asegúrate de especificar el directorio de instalación correcto de Ghidra en la propiedad GHIDRA_INSTALL_DIR.
$ ./gradlew -PGHIDRA_INSTALL_DIR=<ghidra_path>