Repositori ini berisi dokumentasi dan kode sumber C++, Python, dan Rust API untuk platform rekayasa balik Binary Ninja.
Dokumentasi online tersedia untuk API berikut:
Untuk membangun Binary Ninja API, Anda perlu menggunakan revisi spesifik yang cocok dengan hash dari file api_REVISION.txt
. File ini harus ditempatkan di folder instalasi root untuk Linux dan Windows atau sub-folder Contents/Resources
pada aplikasi di macOS. Cara termudah untuk melakukan ini adalah dengan mengkloning repositori ini (atau menambahkannya sebagai submodul) dan melakukan sesuatu seperti git checkout $(cat api_REVISION.txt | awk -F/ '{print $NF}')
. Dokumentasi tentang cara mengaturnya dengan sesuatu seperti cmake
dapat ditemukan di sini.
Untuk menulis plugin Binary Ninja menggunakan C++, Anda perlu membuat C++ API. Membangun perpustakaan API dilakukan serupa dengan sebagian besar proyek berbasis CMake; langkah-langkah dasarnya diuraikan sebagai berikut:
# 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
Selain pengaturan build default, Anda mungkin ingin:
-DBN_API_BUILD_EXAMPLES=ON
ke CMake saat mengonfigurasi build. Setelah build berhasil, Anda dapat menginstal plugin yang dibangun dengan menjalankan target install
. Saat menggunakan generator build "Unix Makefiles", tampilannya seperti: make install
.-DHEADLESS=ON
ke CMake saat mengonfigurasi build.-DBN_INSTALL_DIR=/path/to/binaryninja
ke CMake saat mengonfigurasi pengaturan build.LNK1107
mungkin menunjukkan bahwa bit Anda tidak cocok. Ada banyak contoh yang tersedia. Folder contoh Python mendemonstrasikan banyak aplikasi berbeda dari Python API, sedangkan contoh C++ meliputi:
* Membutuhkan lisensi yang mendukung akses API tanpa kepala.
Pelacak masalah untuk repositori ini tidak hanya melacak masalah dengan kode sumber yang terdapat di sini tetapi juga produk Binary Ninja yang lebih luas.
Repositori ini memiliki dua cabang utama dev
dan master
.
Cabang dev
memiliki pembaruan terkini dan melacak perkembangan terbaru Binary Ninja; permintaan tarik harus dilakukan terhadap cabang ini. Cabang master
melacak build stabil Binary Ninja. Jika Anda baru saja menginstal Binary Ninja untuk pertama kalinya, kemungkinan besar Anda berada di saluran rilis stabil.
Kontribusi publik dipersilakan di repositori ini. Sebagian besar API dan dokumentasi dalam repositori ini dilisensikan di bawah lisensi MIT, namun API tersebut berinteraksi dengan aplikasi komersial sumber tertutup, Binary Ninja. Selain itu, Rust API dilisensikan di bawah lisensi Apache 2.0.
Jika Anda tertarik untuk berkontribusi saat mengirimkan PR pertama Anda, Anda akan menerima pemberitahuan dari CLA Assistant yang memungkinkan Anda menandatangani Perjanjian Lisensi Kontribusi kami secara online.
Repositori ini berisi semua plugin Platform kami yang tersedia di sini:
Repositori ini berisi semua plugin Arsitektur yang tersedia di Binary Ninja edisi Pribadi dan Komersial. Anda dapat menemukan setiap arsitektur di sini:
Repositori ini berisi semua plugin Binary View Type kami yang tersedia di sini:
Selain repositori API utama ini yang bersifat open source, Vector35 juga memiliki sumber terbuka, Debugger, dan plugin Objective-C juga:
Beberapa komponen mungkin dirilis di bawah lisensi sumber terbuka yang kompatibel namun sedikit berbeda dan akan memiliki file LISENSI sendiri jika diperlukan.
Komponen lainnya dirilis di bawah lisensi MIT.
Perhatikan bahwa file .lib
disertakan dalam biner asli Binary Ninja untuk windows. File lib tersebut juga dirilis di bawah lisensi yang sama dengan repositori ini dan dapat didistribusikan sesuai dengan itu.