이 저장소에는 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
두 개의 기본 분기가 있습니다.
dev
브랜치에는 최신 업데이트가 있으며 Binary Ninja의 최신 개발 빌드를 추적합니다. 끌어오기 요청은 이 분기에 대해 이루어져야 합니다. master
브랜치는 Binary Ninja의 안정적인 빌드를 추적합니다. 방금 Binary Ninja를 처음 설치했다면 안정 릴리스 채널에 있을 가능성이 높습니다.
이 저장소에 대한 공개 기여를 환영합니다. 이 저장소에 있는 대부분의 API와 문서는 MIT 라이선스에 따라 라이선스가 부여되지만 API는 비공개 소스 상용 애플리케이션인 Binary Ninja와 인터페이스합니다. 또한 Rust API는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
첫 번째 PR을 제출할 때 기여에 관심이 있는 경우 CLA Assistant로부터 온라인으로 기여 라이센스 계약에 서명할 수 있는 알림을 받게 됩니다.
이 저장소에는 여기에서 사용할 수 있는 모든 플랫폼 플러그인이 포함되어 있습니다.
이 저장소에는 Binary Ninja의 개인용 및 상업용 버전에서 사용할 수 있는 모든 아키텍처 플러그인이 포함되어 있습니다. 여기에서 각 아키텍처를 찾을 수 있습니다.
이 저장소에는 여기에서 사용할 수 있는 모든 Binary View Type 플러그인이 포함되어 있습니다.
오픈 소스인 이 기본 API 저장소 외에도 Vector35는 디버거 및 Objective-C 플러그인 오픈 소스도 오픈 소스로 제공합니다.
일부 구성 요소는 호환 가능하지만 약간 다른 오픈 소스 라이선스에 따라 출시될 수 있으며 적절하게 자체 LICENSE 파일을 갖게 됩니다.
나머지 구성 요소는 MIT 라이선스에 따라 출시됩니다.
.lib
파일에는 Windows용 Binary Ninja의 기본 바이너리 빌드가 포함되어 있습니다. 해당 lib 파일도 이 저장소와 동일한 라이센스로 릴리스되며 그에 따라 배포될 수 있습니다.