该存储库包含 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 文件也在与此存储库相同的许可证下发布,并且可以相应地分发。