
Carregador do Ghidra para o formato de imagem de firmware do modem MediaTek md1img
Carregador do Ghidra para o formato de imagem de firmware de modem md1img da MediaTek. Atualmente, apenas firmware baseado em nanoMIPS é suportado,
mas recursos básicos podem ainda funcionar se você escolher manualmente uma arquitetura diferente (por exemplo, MIPS) ao carregar uma imagem.
Para modems baseados em nanoMIPS, instale o plugin nanoMIPS ISA para Ghidra junto com este carregador antes de tentar carregar a imagem de firmware.
No Ghidra, basta importar um arquivo no formato md1img para o projeto. O carregador extrairá o firmware
do modem e aplicará quaisquer símbolos de depuração.
Após carregar inicialmente o firmware e identificar as funções INT_InitRegions_C, memcpy e memset,
execute os scripts MtkInitRegions.java e emulate_custom_mk_ram_info.py no Script Manager (nessa ordem)
para definir automaticamente regiões de memória adicionais.
Garanta que a variável de ambiente GHIDRA_INSTALL_DIR ou a propriedade do projeto esteja definida
para que o Gradle funcione corretamente no Eclipse. Veja https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties sobre onde colocar o arquivo gradle.properties que contém essa definição de propriedade.
Se você estiver modificando este projeto em conjunto com o plugin nanoMIPS ISA, adicione o diretório do projeto do plugin nanoMIPS ao caminho de build do projeto do carregador no Eclipse.
Use sua instalação local do Gradle ou o wrapper do Gradle incluído para compilar o projeto a partir do código-fonte.
Certifique-se de especificar o diretório de instalação correto do Ghidra na propriedade GHIDRA_INSTALL_DIR.
$ ./gradlew -PGHIDRA_INSTALL_DIR=<ghidra_path>