
MediaTek md1img 모뎀 펌웨어 이미지 포맷용 Ghidra 로더
MediaTek md1img 모뎀 펌웨어 이미지 형식을 위한 Ghidra 로더입니다. 현재는 nanoMIPS 기반 펌웨어만 지원되지만,
이미지 로드 시 다른 아키텍처(예: MIPS)를 수동으로 선택하면 기본 기능이 여전히 작동할 수 있습니다.
nanoMIPS 기반 모뎀의 경우, 펌웨어 이미지 로드를 시도하기 전에 이 로더와 함께 nanoMIPS ISA Ghidra 플러그인을 설치하세요.
Ghidra에서 md1img 형식 파일을 프로젝트로 가져오기만 하면 됩니다. 로더가 모뎀 펌웨어를 추출하고 디버그 심볼을 적용합니다.
펌웨어를 처음 로드하고 INT_InitRegions_C, memcpy, memset 함수를 식별한 후,
Script Manager에서 MtkInitRegions.java 및 emulate_custom_mk_ram_info.py 스크립트를 (순서대로) 실행하여
추가 메모리 영역을 자동으로 정의하세요.
Gradle이 Eclipse에서 제대로 작동하려면 GHIDRA_INSTALL_DIR 환경 변수 또는 프로젝트 속성이 정의되어 있는지 확인하세요.
gradle.properties 파일을 어디에 배치해야 하는지에 대한 자세한 내용은 https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties을 참조하세요.
이 프로젝트를 nanoMIPS ISA 플러그인과 함께 수정하는 경우, nanoMIPS 플러그인 프로젝트 디렉터리를 로더의 Eclipse 프로젝트 빌드 경로에 추가하세요.
로컬 Gradle 설치 또는 포함된 Gradle wrapper를 사용하여 소스에서 프로젝트를 빌드하세요.
GHIDRA_INSTALL_DIR 속성에 올바른 Ghidra 설치 디렉터리를 지정해야 합니다.
$ ./gradlew -PGHIDRA_INSTALL_DIR=<ghidra_path>