此儲存庫包含 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++ 編寫二進位 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
可能表示您的位元不符。 有很多例子可供參考。 Python 範例資料夾演示了 Python API 的許多不同應用程序,而 C++ 範例包括:
* 需要支援無頭 API 存取的許可證。
該儲存庫的問題追蹤器不僅追蹤此處包含的原始程式碼的問題,還追蹤更廣泛的 Binary Ninja 產品。
此儲存庫有兩個主要分支dev
和master
。
dev
分支擁有最新更新並追蹤 Binary Ninja 的最新開發版本;應針對此分支發出拉取請求。 master
分支追蹤 Binary Ninja 的穩定版本。如果您剛第一次安裝 Binary Ninja,您可能處於穩定發布通道。
歡迎公眾對該存儲庫做出貢獻。此儲存庫中的大多數 API 和文件均根據 MIT 許可證獲得許可,但是,API 與閉源商業應用程式 Binary Ninja 介接。此外,Rust API 已根據 Apache 2.0 授權取得授權。
如果您有興趣在提交第一份 PR 時做出貢獻,您將收到 CLA Assistant 的通知,讓您在線上簽署我們的貢獻授權協議。
該存儲庫包含我們所有可用的平台插件:
此儲存庫包含 Binary Ninja 個人版和商業版中提供的所有架構插件。您可以在這裡找到每個架構:
此儲存庫包含此處提供的所有二進位視圖類型外掛程式:
除了開源的主要 API 儲存庫之外,Vector35 還開源了偵錯器和 Objective-C 插件:
某些元件可能會在相容但略有不同的開源許可證下發布,並且將酌情擁有自己的許可證文件。
其餘組件根據 MIT 許可證發布。
請注意, .lib
檔案包含在 Windows 版 Binary Ninja 的本機二進位版本中。這些 lib 檔案也在與此儲存庫相同的許可證下發布,並且可以相應地分發。