يحتوي هذا المستودع على الوثائق والتعليمات البرمجية المصدرية لواجهات برمجة تطبيقات C++ وPython وRust لمنصة الهندسة العكسية Binary Ninja.
تتوفر الوثائق عبر الإنترنت لواجهات برمجة التطبيقات التالية:
من أجل إنشاء Binary Ninja API، ستحتاج إلى استخدام المراجعة المحددة التي تطابق التجزئة من الملف api_REVISION.txt
. يجب أن يكون هذا الملف موجودًا في مجلد التثبيت الجذر لنظامي التشغيل Linux وWindows أو المجلد الفرعي Contents/Resources
الخاص بالتطبيق على نظام التشغيل macOS. أسهل طريقة للقيام بذلك هي عن طريق استنساخ هذا المستودع (أو إضافته كوحدة فرعية) والقيام بشيء مثل git checkout $(cat api_REVISION.txt | awk -F/ '{print $NF}')
. يمكن العثور هنا على وثائق حول كيفية إعداد هذا باستخدام شيء مثل cmake
.
لكتابة ملحقات Binary Ninja باستخدام C++، ستحتاج إلى إنشاء 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 عند تكوين إعداد البناء.LNK1107
إلى أن وحدات البت الخاصة بك غير متطابقة. هناك العديد من الأمثلة المتاحة. يوضح مجلد أمثلة Python العديد من التطبيقات المختلفة لـ Python API، بينما تتضمن أمثلة C++ ما يلي:
* يتطلب ترخيصًا يدعم الوصول إلى واجهة برمجة التطبيقات بدون رأس.
لا يقوم متتبع المشكلات لهذا المستودع بتتبع المشكلات المتعلقة بكود المصدر الموجود هنا فحسب، بل يتتبع أيضًا مشكلات منتج Binary Ninja الأوسع.
يحتوي هذا المستودع على فرعين أساسيين dev
و master
.
يحتوي فرع dev
على آخر التحديثات ويتتبع أحدث إصدار من تطوير Binary Ninja؛ يجب تقديم طلبات السحب ضد هذا الفرع. يتتبع الفرع master
البناء المستقر لـ Binary Ninja. إذا قمت للتو بتثبيت Binary Ninja لأول مرة، فمن المحتمل أنك في قناة الإصدار المستقر.
المساهمات العامة هي موضع ترحيب في هذا المستودع. معظم واجهات برمجة التطبيقات (API) والوثائق الموجودة في هذا المستودع مرخصة بموجب ترخيص MIT، ومع ذلك، فإن واجهة برمجة التطبيقات (API) تتعامل مع تطبيق تجاري مغلق المصدر، Binary Ninja. بالإضافة إلى ذلك، تم ترخيص Rust API بموجب ترخيص Apache 2.0.
إذا كنت مهتمًا بالمساهمة عند إرسال علاقاتك العامة الأولى، فستتلقى إشعارًا من CLA Assistant الذي يسمح لك بالتوقيع على اتفاقية ترخيص المساهمة الخاصة بنا عبر الإنترنت.
يحتوي هذا المستودع على جميع المكونات الإضافية للنظام الأساسي المتوفرة لدينا هنا:
يحتوي هذا المستودع على جميع المكونات الإضافية للهندسة المعمارية المتوفرة في الإصدارات الشخصية والتجارية من Binary Ninja. يمكنك العثور على كل بنية هنا:
يحتوي هذا المستودع على جميع المكونات الإضافية لنوع العرض الثنائي المتوفرة هنا:
بالإضافة إلى أن مستودع API الرئيسي هذا مفتوح المصدر، فإن Vector35 لديه أيضًا مصدر مفتوح لـ Debugger ومكونات Objective-C مفتوحة المصدر أيضًا:
قد يتم إصدار بعض المكونات بموجب تراخيص مفتوحة المصدر متوافقة ولكنها مختلفة قليلاً وسيكون لها ملف ترخيص خاص بها حسب الاقتضاء.
يتم إصدار المكونات المتبقية بموجب ترخيص MIT.
لاحظ أن ملفات .lib
مضمنة في الإصدارات الثنائية الأصلية لـ Binary Ninja لنظام التشغيل Windows. يتم أيضًا إصدار ملفات lib هذه بموجب نفس ترخيص هذا المستودع ويمكن توزيعها وفقًا لذلك.