SamsungのExynosセルラーベースバンドプラットフォーム、コードネームShannonをリバースエンジニアリングするためのスクリプト、ツール、および情報。これらのツールは、8月5日、Black Hat USA2020で「SamsungのShannonベースバンドをセキュリティテスト用にエミュレートする」という話でリリースされました。
reversing/ghidra/ShannonLoaderこれまでのほぼすべての既知のモデムからmodem.binをロードするためのGhidra拡張。 https://github.com/grant-h/shannonfirmwareのすべてのファームウェア画像は、ローダーのCIテスト中にロードされ、その互換性を確保します。
reversing/ghidra/scriptsShannonモデム画像に注釈を付けるのに役立つGhidra後のPythonスクリプト。これには、デバッグ文字列の回復と自動名前付け機能が含まれます。 Shannonloaderで読み込んだ後に使用します。
reversing/modem RAW modem.bin抽出スクリプトは、開発されたサブパーツおよびその他への抽出スクリプト。
reversing/btlバックトレースログ(BTL)ファイルを解析するためのスクリプトと情報。これらは、モデムクラッシュ /ダンプ中または「CP RAMロギング」機能を介して含まれます。これらは、実際の実行モデムからの圧縮ログファイルです。
firmware/ファームウェアの獲得に関する情報といくつかの抽出されたデータダンプ。
Ghidraでこのファームウェアの逆転を開始するための簡単なチュートリアルを次に示します。
modem.binファイルをさらに抽出していることを確認してください。それが圧縮されている場合は、バイナリを除去するようにしてください。ShannonLoader.zipリリースをターゲットmodem.binファイルを選択します。このファイルのローダーは、「Samsung Shannon Modem Binary」として自動的に選択されていることがわかります。これが表示されない場合は、適切なファイルをロードして拡張機能を適切にインストールしていることを確認してください。 Ghidraデバッグコンソール(スプラッシュ画面の右下)を開いて、エラーがあるかどうかを再確認します。ShannonTraceEntry.py Pythonスクリプトを実行します。 ~/ghidra_scripts (Linux)のユーザーホームディレクトリにスクリプトを配置するか、マネージャーにパスを追加してください。このスクリプトは、分析前にすべてのトレースデバッグ情報を識別し、データの拡張を避けます。log_printf関数の壊れた回復を引き起こし、バイナリ全体で破壊された分解をもたらします。これをチェックしない場合は、インポートをゼロから再起動する必要があります。ShannonRename.pyを実行します。これは、バイナリをナビゲートするのに役立ちますが、名前はヒューリスティックに決定されているため、品質が異なる場合があることを忘れないでください。同じ推測された名前の関数には、数値接頭辞が追加されます。簡単に見たい場合は、2017年モデム画像のGhidraプロジェクトをエクスポートしました。
リポジトリのライセンスはMITです。注:トップレベルのライセンスは、リポジトリ全体ではなく、SPDXマーキングを明示的に含むファイルのみをカバーしています。他のファイルの場合、それらはライセンス可能ではない場合があります(バイナリダンプ、ファームウェアなど)、または他の寛容なライセンスが含まれている場合があります。