
Binary Ninjaを使用してリバースエンジニアリングを学ぶ初心者向けのリソースを提供するプラグインです。他の複数のプラグインを自動的にインストールし、これらのプラグインの機能を紹介する例も提供します。
Binary Ninja 向けの教育ツール
このプラグインは、Binary Ninja を使ってリバースエンジニアリングを学ぶ初心者向けのリソースを提供します。他の複数のプラグインを自動的にインストールし、それらのプラグインの機能を紹介するサンプルも提供します。
このプロジェクトは、NCC Group の 2017 年サマーインターンシッププログラムの成果物です。今後の更新は https://github.com/ehennenfent/binja_sensei で追跡されます。 NCC Group は、2017年8月18日以降にリポジトリに加えられた一切の変更について責任を負いません。
将来を見据え、Binja Sensei は未完成の Plugin Manager API 経由でプラグインをインストールします。プラグインマネージャーには現在 GUI がないため、インストールは Binary Ninja のスクリプトコンソール(Ctrl+` でアクセス)で以下のスニペットを実行して行う必要があります。
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
注:Binja をインストールした時期によっては、このプラグインを表示するには manager.check_for_updates() を実行して Binja を再起動する必要がある場合があります。クリーンな VM にインストールすることを強くお勧めします。
2017年8月31日より前にこれを実行する場合、依存関係のインストールが b0778fc と 326253a に依存しているため、Binary Ninja の開発版を使用する必要があります。
次に、Binary Ninja を再起動します。読み込まれると、Sensei はバンドルされているすべてのプラグインを最新バージョンに更新し、各プラグインの Python 依存関係をインストールします。インストールスクリプトは自動的には実行 されません。そのため、Ubuntu を使用していて binja_dynamics をセットアップする予定がある場合は、~/.binaryninja/repositories/default/plugins/binja_dynamics に移動して ./install.sh を実行する必要があります。
プラグインのインストールのいずれかが失敗した場合は、手動インストールを実行した方がうまくいく可能性があります。Issue #753 が解決されるまでは、絶対ファイルパスに依存する一部のプラグインが、手動でインストールしないと動作しない場合があります。手動でインストールするには、以下の関連リポジトリのリンクをコピーし、plugins ディレクトリ 内にクローンしてください。
https://github.com/carstein/Annotator.git
https://github.com/ehennenfent/binja_arch_ref.git
https://github.com/ehennenfent/binja_dynamics.git
https://github.com/ehennenfent/binja_explain_instruction.git
https://github.com/carstein/Syscaller.git
バンドルされているツールは、それぞれの作者に帰属することに注意してください。このプラグイン自体は MIT ライセンス の下で提供されていますが、そのライセンスは以下のいずれのプラグインにも適用されません。
これらのプラグインの潜在的なユースケースを示すため、PicoCTF 2013 の5つのオーバーフローチャレンジの解答が含まれています。writeup の作成以降、機能、配色、バグ修正に関して軽微な変更が実装されている可能性があることに注意してください。
Annotator は仮想スタックを使用して、libc 関数の呼び出しに引数プロトタイプの注釈を付けます。

このプラグインは、Binary Ninja が内部で保持しているアーキテクチャ情報をチートシートとして表示します。

このプラグインは Binjatron に Qt フロントエンドを追加します。初心者が重要なメモリ位置を見つけやすくするためのハイライトも含まれます。

アセンブリ命令の動作を平易な英語で説明するポップアップウィンドウを追加します。

システムコールに引数の注釈を付けます。
