
IDAプラグインで、(U)EFIバイナリのリバースエンジニアリングを強化し、バッチ解析、GUIDデータベース、サービス使用統計をファームウェアセキュリティ研究に活用します。
__.
_ __/_ /| |
| ) | ) | |
| \ | \ | |
/ / _ / ||
/ /
_________ . ____ . . _____
/ / _ || ______ ______ | |/ _| ____ ||/ _
_ \ / / / |/ // / | < / | \ / __
/ \ /| |_ \ _ \ | | | | \ || | \ /
/ / /_/ |/ > > |____| _| /||| _ >
/ / / / / /
EFI Swiss Knife (U)EFIリバースエンジニアリングを改善するIDAプラグイン
Copyright (C) 2016, 2017 Pedro Vilaça (fG!) - [email protected] - https://reverse.put.as
これは(U)EFIバイナリのリバースエンジニアリングを支援するIDAプラグインです。 Snareによるオリジナル作品に基づいています - https://github.com/snare/ida-efiutils Pythonが嫌いなので、C言語で新しいものを書き、追加したい機能をいくつか盛り込みました。
IDA 6.9/6.95 Mac OS X版でテスト済みです。
OS X用にコンパイルするには、MakefileまたはXCodeプロジェクトを使用してください。
XCodeプロジェクトを編集し、SDKへのパスを設定する必要があります。 (デフォルトは /Applications/IDA Pro 6.95/idasdk695 です)
config.hを編集し、ログとデータベースのパスを変更してください。
EFISwissKnife.pmc64 を /Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/plugins/ にコピーしてください。
デフォルトでは、プラグインはIDAの64ビット版のみにコンパイルされます。32ビット版用にプラグインが必要な場合は、 Xcodeプロジェクトを編集し、EA64=1 を 0 に変更してください。
IDAから呼び出すにはShift+F2を使用し、その後
このプラグインはバッチモードをサポートしており、EFIバイナリを一括解析してサービス使用状況に関する統計情報を収集したい場合に使用できます。
efi_guids.h で利用可能なGUIDを更新することをお勧めします。
このコードはMac OS XのEFIバイナリを対象としています。他のプラットフォームのUEFIバイナリでも、問題なく動作するか、軽微な 修正や更新で動作するはずです。
PEバイナリのみサポートされており、TEバイナリはまだサポートされていません。
以上です。お楽しみください :-)
fG!
v1.0 - 初期バージョン
IDAのバグ: もう一つのバグはPLUGIN_UNLフラグに関連しています。これは「'run'を呼び出した直後にプラグインをアンロードする」ために使用されます。 このオプションが設定されている場合、Windows版ではクラッシュします。Mac版では問題なく動作するようです。