
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 スクリプトを(この順序で)実行して、追加のメモリ領域を自動的に定義します。
Eclipse で Gradle を正しく動作させるには、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>