ミニマリストの指導エクステンダー
AMIE は、ARM アーキテクチャのみに焦点を当てた FRIEND の Python 再版です (AArch32 と AArch64 のみがサポートされています)。これは軽量で依存関係がなく、ARM システムのレジスタと命令に関する最も関連性の高い最新情報を提供します。
AArch32 のMCR/MRCおよびMCRR/MRCC命令、および AArch64 のMSR/MRSおよびSYS命令の場合、システム レジスタ エンコーディングが検出され、 IDA Viewサブビューでわかりやすい名前に置き換えられます。
MCR/MRCおよびMSR/MRS命令の場合、擬似コードサブビューにも適用されます。
IDA ビューサブビューまたは擬似コードサブビューでシステム レジスタの上にマウスを移動すると、関連するドキュメント ページの概要 (通常は 30 行以内) が表示されます (利用可能な場合はビットフィールドも含まれます)。
IDA ビューサブビューまたは疑似コードサブビューで命令ニーモニックの上にマウスを移動すると、関連するドキュメント ページの概要が表示され、利用可能な場合は関連するアセンブリ テンプレートも表示されます。
FRIEND との最大の違いは、リソース ファイル ( aarch32.jsonおよびaarch64.json ) が探索ツールから自動生成されることです。システム レジスタと命令 (ドキュメントとエンコーディング) は、ARM が提供する XML ファイルを解析する自家製スクリプトによって抽出されます。
プラグイン ファイルamie.pyとそのリソース ファイルaarch32.jsonおよびaarch64.jsonをプラグイン ディレクトリまたはユーザー プラグイン ディレクトリ (複数の IDA Pro バージョン間で共有する場合) にコピーします。これらはデフォルトのパスです:
| OS | プラグインディレクトリ | ユーザープラグインディレクトリ |
|---|---|---|
| 窓 | %PROGRAMFILES%IDA 7.4plugins | %APPDATA%Hex-RaysIDA Proplugins |
| Linux | ~/ida-7.4/plugins | ~/.idapro/plugins |
| macOS | /Applications/IDA Pro 7.4/idabin/plugins | ~/.idapro/plugins |
依存関係はありません! :-)
実装定義のシステム レジスタのサポートはまだ利用できません。
これは IDA Pro の制限であるため、 MCRR/MRRCに対する Hex-Ray のサポートはありません。