Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BinAbsInspector — ماسح ثغرات ثنائي ثابت يستخدم التفسير التجريدي على Ghidra Pcode. يكتشف فئات CWE مثل buffer overflows و use-after-free و command injection عبر التنفيذ الرمزي باستخدام Z3. | Kitploit
أدوات/GitHubGitHub/keensecuritylab/binabsinspector
التحليل الثابتماسحات الثغرات الأمنيةالهندسة العكسيةالاختبار العشوائيتحليل الملفات الثنائية
GitHubkeensecuritylab/binabsinspector

BinAbsInspector

ماسح ثغرات ثنائي ثابت يستخدم التفسير التجريدي على Ghidra Pcode. يكتشف فئات CWE مثل buffer overflows و use-after-free و command injection عبر التنفيذ الرمزي باستخدام Z3.

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
1.7k2451منذ 2 سنواتتمت المراجعة من قبل Kitploit

ما هو BinAbsInspector؟

BinAbsInspector (مفتش ثنائي مجرد) هو محلل ثابت للهندسة العكسية الآلية ومسح الثغرات في الثنائيات، وهو مشروع بحثي طويل الأمد يحتضنه Keenlab. يعتمد على التفسير المجرد بدعم من Ghidra. يعمل على Pcode الخاص بـ Ghidra بدلاً من لغة التجميع. يدعم حاليًا الثنائيات على x86 وx64 وarmv7 وaarch64.

التثبيت

  • قم بتثبيت Ghidra وفقًا لـ وثائق Ghidra
  • قم بتثبيت Z3 (النسخة المختبرة: 4.8.15)
  • لاحظ أن مكتبة Z3 تتكون عمومًا من جزئين: الأول هو حزمة Java، والآخر هو المكتبة الأصلية. حزمة Java مضمنة بالفعل في الدليل "/lib"، ولكننا نقترح استبدالها بحزمة Java الخاصة بك لضمان توافق الإصدار.
    • لنظام Windows، قم بتنزيل حزمة مبنية مسبقًا من هنا، واستخرج ملف zip وأضف متغير بيئة PATH يشير إلى z3-${version}-win/bin
    • لنظام Linux، لا يُنصح بالتثبيت باستخدام مدير الحزم، هناك خياران:
      1. يمكنك تنزيل حزمة مبنية مسبقًا مناسبة من هنا، واستخرج ملف zip وانسخ z3-${version}-glibc-${version}/bin/*.so إلى /usr/local/lib/
      2. أو يمكنك بناء وتثبيت z3 وفقًا لـ بناء Z3 باستخدام make و GCC/Clang
    • لنظام MacOS، فهو مشابه لنظام Linux.
  • قم بتنزيل ملف zip للإضافة من صفحة الإصدارات
  • قم بتثبيت الإضافة وفقًا لـ ملاحظات إضافة Ghidra

البناء

قم ببناء الإضافة بنفسك، إذا كنت ترغب في تطوير ميزة جديدة، يرجى الرجوع إلى دليل التطوير.

  • قم بتثبيت Ghidra و Z3
  • قم بتثبيت Gradle 7.x (النسخة المختبرة: 7.4)
  • اسحب المستودع
  • قم بتشغيل gradle buildExtension في جذر المستودع
  • سيتم إنشاء الإضافة في dist/${GhidraVersion}_${date}_BinAbsInspector.zip

الاستخدام

يمكنك تشغيل BinAbsInspector في وضع بدون واجهة رسومية (headless) أو وضع واجهة المستخدم الرسومية (GUI) أو مع Docker.

  • مع وضع Ghidra بدون واجهة رسومية.
root@kitploit:~
$GHIDRA_INSTALL_DIR/support/analyzeHeadless <projectPath> <projectName> -import <file> -postScript BinAbsInspector "@@<scriptParams>"

<projectPath> -- مسار مشروع Ghidra.
<projectName> -- اسم مشروع Ghidra.
<scriptParams> -- وسيط المحلل الخاص بنا، يوفر الخيارات التالية:

  • مع واجهة المستخدم الرسومية لـ Ghidra

    1. قم بتشغيل Ghidra واستيراد الثنائي الهدف إلى مشروع
    2. تحليل الثنائي بالإعدادات الافتراضية
    3. عند انتهاء التحليل، افتح Window -> Script Manager وابحث عن BinAbsInspector.java
    4. انقر نقرًا مزدوجًا على إدخال BinAbsInspector.java، واضبط المعاملات في نافذة التكوين وانقر فوق OK
    5. عند انتهاء التحليل، يمكنك رؤية تقارير CWE في نافذة وحدة التحكم، يمكنك النقر نقرًا مزدوجًا على العناوين من التقرير للانتقال إلى العنوان المقابل
  • مع Docker

root@kitploit:~
git clone [email protected]:KeenSecurityLab/BinAbsInspector.git
cd BinAbsInspector
docker build . -t bai
docker run -v $(pwd):/data/workspace bai "@@<script parameters>" -import <file>

المدققات المطبقة

حتى الآن يدعم BinAbsInspector المدققات التالية:

  • CWE78 (حقن أوامر نظام التشغيل)
  • CWE119 (تجاوز سعة المخزن المؤقت (حالة عامة))
  • CWE125 (تجاوز سعة المخزن المؤقت (قراءة خارج الحدود))
  • CWE134 (استخدام سلسلة تنسيق يتم التحكم فيها خارجيًا)
  • CWE190 (فيض عدد صحيح أو التفاف)
  • CWE367 (وقت الفحص وقت الاستخدام (TOCTOU))
  • CWE415 (تحرير مزدوج)
  • CWE416 (استخدام بعد التحرير)
  • CWE426 (مسار بحث غير موثوق)
  • CWE467 (استخدام sizeof() على نوع مؤشر)
  • CWE476 (إلغاء مرجع المؤشر الفارغ)
  • CWE676 (استخدام دالة قد تكون خطيرة)
  • CWE787 (تجاوز سعة المخزن المؤقت (كتابة خارج الحدود))

هيكل المشروع

هيكل هذا المشروع كما يلي، يرجى الرجوع إلى التفاصيل التقنية أو المقال بالنسخة الصينية لمزيد من التفاصيل.

root@kitploit:~
├── main
│   ├── java
│   │   └── com
│   │       └── bai
│   │           ├── checkers                       تنفيذ المدقق
│   │           ├── env
│   │           │   ├── funcs                      نمذجة الدوال
│   │           │   │   ├── externalfuncs          نمذجة الدوال الخارجية
│   │           │   │   └── stdfuncs               نمذجة مكتبة C++ القياسية
│   │           │   └── region                     نمذجة الذاكرة
│   │           ├── solver                         وحدة التحليل الأساسية والرسم البياني
│   │           └── util                           أدوات مساعدة
│   └── resources
└── test

يمكنك أيضًا بناء javadoc باستخدام gradle javadoc، وستنشأ وثائق API في ./build/docs/javadoc.

شكر وتقدير

نستخدم Ghidra كأساس لنا ونستفيد بشكل متكرر من JImmutable Collections لتحسين الأداء.
نود هنا أن نشكرهم على مساعدتهم العظيمة!

تنزيل الأداة
المعاملالوصف
[-K <kElement>]الحد الأقصى لحجم KSet K
[-callStringK <callStringMaxLen>]الحد الأقصى لطول سلسلة الاستدعاء K
[-Z3Timeout <timeout>]مهلة Z3
[-timeout <timeout>]مهلة التحليل
[-entry <address>]عنوان الدخول
[-externalMap <file>]تكوين نموذج الدالة الخارجية
[-json]الإخراج بتنسيق json
[-disableZ3]تعطيل Z3
[-all]تمكين جميع المدققات
[-debug]تمكين إخراج سجل التصحيح
[-check "<cweNo1>[;<cweNo2>...]"]تمكين مدققات محددة