このリポジトリには、Binary Ninja リバース エンジニアリング プラットフォーム用の C++、Python、および Rust API のドキュメントとソース コードが含まれています。
次の API については、オンライン ドキュメントを利用できます。
Binary Ninja API を構築するには、ファイルapi_REVISION.txt
のハッシュと一致する特定のリビジョンを使用する必要があります。このファイルは、Linux および Windows のルート インストール フォルダー、または macOS のアプリのContents/Resources
サブフォルダーに配置する必要があります。これを行う最も簡単な方法は、このリポジトリのクローンを作成し (またはサブモジュールとして追加し)、 git checkout $(cat api_REVISION.txt | awk -F/ '{print $NF}')
のようなことを実行することです。 cmake
などを使用してこれを設定する方法のドキュメントは、ここにあります。
C++ を使用して Binary Ninja プラグインを作成するには、C++ API をビルドする必要があります。 API ライブラリの構築は、ほとんどの CMake ベースのプロジェクトと同様に行われます。基本的な手順の概要は次のとおりです。
# Get the source
git clone https://github.com/Vector35/binaryninja-api.git
cd binaryninja-api
git submodule update --init --recursive
# Configure an out-of-source build setup
cmake -S . -B build # (additional arguments go here if needed)
# Compile
cmake --build build -j8
デフォルトのビルド設定に加えて、次のことを行うこともできます。
-DBN_API_BUILD_EXAMPLES=ON
を CMake に渡します。ビルドが成功したら、 install
ターゲットを実行して、ビルドされたプラグインをインストールできます。 「Unix Makefiles」ビルド ジェネレーターを使用する場合、これはmake install
のようになります。-DHEADLESS=ON
を CMake に渡します。-DBN_INSTALL_DIR=/path/to/binaryninja
CMake に渡すことで、Binary Ninja インストールへのパスを指定します。LNK1107
などの Windows のエラーは、ビットが一致していないことを示している可能性があります。 多くの例が利用可能です。 Python サンプル フォルダーには、Python API のさまざまなアプリケーションが示されています。C++ サンプルには次のものが含まれます。
* ヘッドレス API アクセスをサポートするライセンスが必要です。
このリポジトリの問題トラッカーは、ここに含まれるソース コードの問題だけでなく、より広範な Binary Ninja 製品の問題も追跡します。
このリポジトリには、 dev
とmaster
2 つのプライマリ ブランチがあります。
dev
ブランチには最新のアップデートがあり、Binary Ninja の最新の開発ビルドを追跡します。プル リクエストはこのブランチに対して行う必要があります。 master
ブランチは、Binary Ninja の安定したビルドを追跡します。 Binary Ninja を初めてインストールした場合は、安定版リリース チャネルを使用している可能性があります。
このリポジトリへの一般からの貢献を歓迎します。このリポジトリ内の API とドキュメントのほとんどは MIT ライセンスに基づいてライセンスされていますが、API はクローズドソースの商用アプリケーションである Binary Ninja と連携します。さらに、Rust API は Apache 2.0 ライセンスに基づいてライセンスされています。
最初の PR を送信するときに貢献に興味がある場合は、オンラインで貢献ライセンス契約に署名できるようにする通知が CLA アシスタントから届きます。
このリポジトリには、ここで入手可能なすべてのプラットフォーム プラグインが含まれています。
このリポジトリには、Binary Ninja の Personal および Commercial エディションで利用可能なすべてのアーキテクチャ プラグインが含まれています。各アーキテクチャはここで見つけることができます。
このリポジトリには、ここで入手できるすべての Binary View Type プラグインが含まれています。
このメイン API リポジトリがオープン ソースであることに加えて、Vector35 はデバッガーと Objective-C プラグインもオープン ソースとして公開しています。
一部のコンポーネントは、互換性はあるもののわずかに異なるオープン ソース ライセンスの下でリリースされる場合があり、必要に応じて独自の LICENSE ファイルを持ちます。
残りのコンポーネントは MIT ライセンスに基づいてリリースされます。
.lib
ファイルは、Windows 用 Binary Ninja のネイティブ バイナリ ビルドに含まれていることに注意してください。これらの lib ファイルもこのリポジトリと同じライセンスの下でリリースされており、それに応じて配布される可能性があります。