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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
LCSAJdump — نهج متعدد البنى قائم على الرسوم البيانية مدعوم بتعلم الآلة للكشف عن أدوات ROP | Kitploit
أدوات/GitHubGitHub/chris1sflaggin/lcsajdump
التحليل الثابتالاستغلالالهندسة العكسيةشيل كودتحليل الملفات الثنائيةتعلم الآلةالأوراق والأبحاثالتعلم والتعليمتطوير الحمولات
GitHubchris1sflaggin/lcsajdump

LCSAJdump

نهج متعدد البنى قائم على الرسوم البيانية مدعوم بتعلم الآلة للكشف عن أدوات ROP

272منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
الموقع الإلكتروني

شعار LCSAJdump

LCSAJdump

PyPI Downloads

إطار عام قائم على الرسوم البيانية لاكتشاف الأدوات تلقائيًا

Status License: MIT



LCSAJdump هو إطار تحليل ثابت مصمم لاكتشاف أدوات البرمجة الموجهة بالعودة (ROP) والبرمجة الموجهة بالقفز (JOP). على عكس الماسحات التقليدية، فإن LCSAJdump غير معتمد على بنية المعالج (architecture-agnostic) ويستخدم نهجًا قائمًا على الرسوم البيانية لكشف الثغرات غير المرئية للأدوات الخطية الشائعة.


لماذا LCSAJdump؟

تستخدم ماسحات ROP التقليدية نهج "النافذة المنزلقة" الخطي على وحدات البايت القابلة للتنفيذ في الملف الثنائي. تفشل هذه الطريقة منهجيًا في تحديد الأدوات الظليلة (Shadow Gadgets) : سلاسل التنفيذ التي تعبر كتل الذاكرة غير المتجاورة المرتبطة بقفزات غير مشروطة أو فروع شرطية.

يتجاوز LCSAJdump هذا القيد عن طريق إعادة بناء رسم بياني لتدفق التحكم (Control-Flow Graph - CFG) من خلال تحليل LCSAJ (تسلسل الكود الخطي والقفز). من خلال نمذجة الملف الثنائي كرسم بياني موجه للكتل الأساسية، يحدد الأداة:

  1. الأدوات المتجاورة: تسلسلات خطية قياسية تنتهي بنقل تدفق التحكم.
  2. الأدوات الظليلة (غير المتجاورة): سلاسل معقدة تتجاوز "البايتات السيئة" (مثل بايتات الصفر) باستخدام تعليمات لا يمكن الوصول إليها عبر المسح الخطي.

الميزات الرئيسية

  • دعم متعدد البنيات: دعم أصلي لـ RISC-V (64GC) و x86-64 و ARM64، مع إمكانية التوسع بسهولة إلى بنيات أخرى عبر ملفات تعريف معيارية.
  • تحليل قائم على الرسوم البيانية: يقسم قسم .text إلى كتل LCSAJ أساسية ويعيد بناء علاقات التدفق من خلال رسم بياني عكسي لتدفق التحكم مبني خصيصًا (تمثيل تجاور خفيف الوزن، بدون اعتماد على مكتبات رسوم بيانية ثقيلة).
  • خوارزمية BFS قوس قزح: بحث عكسي ذو أولوية عرض ملكي يبدأ من أحواض تدفق التحكم. يتميز الآن بـ مرشح التفرد المبكر O(1) و حدود تعليمات صارمة لمنع انفجار الحالة وضمان تحليل فائق السرعة حتى في الملفات CISC الكثيفة.
  • بناء الرسم البياني الكسول: يحتفظ بناء الرسم البياني فقط بالعقد القابلة للوصول من ذيول الأدوات ضمن عدد --depth من القفزات، مما يقلل بشكل كبير من الذاكرة ووقت البناء في الملفات الثنائية الكبيرة (مثل libc) مع إنتاج نتائج متطابقة.
  • محرك ترتيب من مرحلتين: يجمع بين خط أساس إرشادي فائق السرعة (مُحسَّن بايزيًا عبر Optuna) ونموذج تعلم آلي LightGBM يحسن جودة الأداة باستخدام ميزات هيكلية ودلالية.
  • استدلال بدون عبء إضافي: نموذج التعلم الآلي مدمج أصليًا ويعمل افتراضيًا، حيث يعالج عشرات الآلاف من العقد في ثوانٍ. يعمل كمرشح فعال للغاية، يرفض القفزات المزعجة ويعيد سلاسل أدوات نظيفة وقابلة للتحكم بدرجة عالية. مستضاف على Hugging Face.
  • معاملات التقليم: عامل "الظلام" القابل للتكوين لتحقيق توازن بين عمق التحليل والأداء، ومنع الحلقات اللانهائية في الرسوم البيانية الدورية.

البنيات المدعومة

(انظر المعايير).

تم تصميم LCSAJdump ليكون عامًا. البنيات المدعومة حاليًا:

  • RISC-V 64-bit (RV64GC): دعم كامل للتعليمات المضغوطة ذات 16 بت.
  • x86-64: يعالج التعليمات المتداخلة ذات الطول المتغير. يتنقل بأمان في الرسوم البيانية الكثيفة دون انفجار في الذاكرة.
  • ARM64: يعالج التعليمات ذات 32 بت ويصفي بعمق الأدوات المفرطة عبر عقوبات إرشادية صارمة.
  • بنيات أخرى: يمكن تنفيذها بسهولة عن طريق تعريف ملفات تعريف جديدة في config.py.

التثبيت

عبر Pip (موصى به)

root@kitploit:~
pip install lcsajdump

من المصدر (تطوير)

root@kitploit:~
git clone [https://github.com/Chris1sFlaggin/LCSAJdump.git](https://github.com/Chris1sFlaggin/LCSAJdump.git)
cd LCSAJdump
pip install -r requirements.txt


الاستخدام

يقدم LCSAJdump واجهة سطر أوامر قوية لتحليل دقيق للملفات الثنائية:

التحليل القياسي (RISC-V الافتراضي):

root@kitploit:~
python LCSAJdump.py <path_to_binary>

تحليل متقدم (تحديد البنية وملف الإخراج):

root@kitploit:~
lcsajdump -a riscv64 -d 15 -k 10 -l 20 -o gadgets.txt <path_to_binary>

تصدير بصيغة JSON مع مرشح الأحرف السيئة:

root@kitploit:~
lcsajdump -a x86_64 -d 20 -k 5 -b "000a0d" --json -o gadgets.json <path_to_binary>

ملاحظة: استخدم -o بعد --json لحفظ JSON في ملف. بدون --json، يحفظ -o نصًا عاديًا.

حفظ الإخراج كنص عادي:

root@kitploit:~
lcsajdump -a riscv64 -d 15 -k 10 -l 20 -o gadgets.txt <path_to_binary>

تحليل جميع الأقسام القابلة للتنفيذ:

root@kitploit:~
lcsajdump --all-exec -d 25 -k 10 -l 30 <path_to_binary>

فرض الترتيب الخوارزمي الصارم (تجاوز التعلم الآلي):

root@kitploit:~
lcsajdump --algo <path_to_binary>

خيارات سطر الأوامر



الدقة والمعايير

يعتمد LCSAJdump على مجموعة اختبارات صارمة تم التحقق منها بشكل تدريجي موجودة في دليل benchmarkTests/.

من خلال 14 تكرارًا رئيسيًا لهندسة الميزات الدلالية، تعلم النموذج الهجين التمييز بين الأدوات بناءً على الآثار الجانبية الفعلية للذاكرة (المستخرجة عبر التنفيذ الرمزي لـ angr) بدلاً من الإرشادات النحوية البحتة.

عند التقييم باستخدام التحقق المتقاطع ذو الـ 5 أضعاف المراعي للمجموعات (الملفات الثنائية للاختبار لم تُرَ مطلقًا أثناء التدريب)، يحقق المُرتب NDCG@1 = 0.914 ± 0.047 و NDCG@10 = 0.922 ± 0.052، مما يعني أن الأدوات الأكثر فائدة توضع باستمرار في أعلى الإخراج. ينجح المحرك ذو المرحلتين في إعطاء الأولوية لتسلسلات إخراج المكدس النظيفة واستدعاءات ret2csu، بينما يعاقب بشدة القفزات ذات الإزاحة الثابتة المعرضة للانهيار والتي تخدع الماسحات الثابتة التقليدية.


دليل المطور والتعلم الآلي

تم تنظيم المستودع لدعم كل من المستخدمين النهائيين وباحثي التعلم الآلي.

  • المحرك الإنتاجي: تدمج واجهة سطر الأوامر الأساسية محرك الاستدلال بسلاسة باستخدام نماذج مستضافة على Hugging Face، دون الحاجة إلى تحميل النموذج يدويًا.
  • خط أنابيب التعلم الآلي: يحتوي دليل lcsajdump/ml_study/ على خط الأنابيب الكامل المستخدم لتدريب النماذج:
    • build_dataset.py: يستخرج الميزات الهيكلية والدلالية من مجموعة من الملفات الثنائية لمسابقات CTF.
    • train_model.py: يدرب نموذج LightGBM LambdaRank ويخرج نماذج .pkl.
    • kfold_cv.py: يتحقق من صحة مجموعة البيانات باستخدام التحقق المتقاطع ذو الـ K-Fold.

المساهمة (مفتوحة للفروع!)

الإطار مفتوح لتنفيذات جديدة. لإضافة بنية جديدة:

  1. انشئ فرعًا (Fork) من المستودع.
  2. افتح lcsajdump/core/config.py.
  3. أضف ملف تعريف جديد إلى قاموس ARCH_PROFILES، مع تعريف ذاكريات القفز، ذاكريات العودة، والسجلات للبنية المطلوبة (مثال x86_64).
  4. قدم طلب سحب (Pull Request).

الترخيص

تم إصدار هذا المشروع بموجب ترخيص MIT. راجع ملف LICENSE للحصول على التفاصيل.


رابط المشروع

قم بزيارة صفحة الويب الخاصة بالمشروع: صفحة LCSAJdump على الويب


صنع بواسطة Chris1sflaggin كمشروع بحثي للاكتشاف التلقائي للأدوات.
تنزيل الأداة
العَلَمالنوعالافتراضيالوصف
-a, --archTEXTautoالبنية المستهدفة (auto, riscv64, x86_64, arm64). يتم الكشف عنها تلقائيًا من رأس ELF.
-d, --depthINTEGER20أقصى عمق بحث في كتل LCSAJ. يتحكم في طول السلسلة.
-k, --darknessINTEGER5حد التقليم — أقصى عدد زيارات لكل عقدة. أعلى = أدوات أكثر، مسح أبطأ.
-l, --limitINTEGER10أقصى عدد للأدوات لعرضها في الإخراج.
-s, --min-scoreINTEGER0الحد الأدنى للدرجة الإرشادية لظهور الأداة في النتائج.
-i, --instructionsINTEGER15أقصى عدد للتعليمات الموجودة في عقدة LCSAJ واحدة.
-v, --verboseعَلَم—تمكين الإخراج المفصل لنتائج مفصلة لكل أداة.
-o, --outputPATH—كتابة الإخراج إلى ملف. نص عادي افتراضيًا؛ استخدم مع --json لإخراج JSON.
-b, --bad-charsTEXT—بايتات سداسية عشرية لتصفية عناوين الأدوات (مثال "000a0d").
--jsonعَلَم—إخراج الأدوات كـ JSON منظم. ادمج مع -o للحفظ في ملف.
--all-execعَلَم—تحليل جميع الأقسام القابلة للتنفيذ، وليس فقط .text.
-al, --algoعَلَم—استخدام الترتيب الخوارزمي الصارم (تجاوز التعلم الآلي).
--versionعَلَم—إظهار الإصدار المثبت والخروج.
--helpعَلَم—إظهار رسالة المساعدة والخروج.