Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dexcalibur — [رسمية] أداة هندسة عكسية لنظام أندرويد تركز على أتمتة التلاعب الديناميكي باستخدام Frida. تقوم بتفكيك dex، وتحليله بشكل ثابت، وإنشاء hooks، واكتشاف reflected methods، وتخزين البيانات المعترضة، وتقوم بأشياء جديدة منها. هدفها أن تكون منصة شاملة للهندسة العكسية لنظام أندرويد. | Kitploit
أدوات/GitHubGitHub/reversenseorg/dexcalibur
أمان أندرويدالتحليل الثابتالتحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءالاختبار العشوائيأمن الجوالتحليل الملفات الثنائية
GitHubreversenseorg/dexcalibur

dexcalibur

[رسمية] أداة هندسة عكسية لنظام أندرويد تركز على أتمتة التلاعب الديناميكي باستخدام Frida. تقوم بتفكيك dex، وتحليله بشكل ثابت، وإنشاء hooks، واكتشاف reflected methods، وتخزين البيانات المعترضة، وتقوم بأشياء جديدة منها. هدفها أن تكون منصة شاملة للهندسة العكسية لنظام أندرويد.

1.2k13024منذ 24 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

قيد العمل : الانتقال إلى dexcalibur 2.0 | الاسم الرمزي : Reversense

npm dependencies npm npm Docker Automated build Build Status Twitter Follow PRs Welcome Maintainability

Dexcalibur banner

Dexcalibur

Dexcalibur هي منصة لعكس هندسة تطبيقات أندرويد تركز على أتمتة الأدوات (instrumentation). خصوصيتها هي استخدام التحليل الديناميكي لتحسين خوارزميات التحليل الثابت. تهدف إلى أتمتة المهام المملة المتعلقة بالأدوات الديناميكية، مثل:

  • فك ترجمة/فك تجميع bytecode المعترض أثناء التشغيل
  • كتابة كود hook وإدارة عدد كبير من رسائل hook
  • البحث عن أنماط/أشياء مثيرة للاهتمام لوضع hooks عليها
  • معالجة البيانات التي تم جمعها بواسطة hook (ملف dex، طريقة تم استدعاؤها، محمل فئة، ...)
  • وغيرها ... ولكن ليس هذا فقط، لأن Dexcalibur لديها محرك تحليل ثابت خاص بها وقادرة على تنفيذ أجزاء جزئية من smali.

هل تريد مشاركة شيء ما أو تحتاج إلى مساعدة؟ انضم إلى محادثاتنا الرسمية:

Telegram - أسرع طريقة للحصول على رد

https://discord.gg/Pfw7Kc3dS

التوثيق الرسمي متاح هنا (موقع - قيد العمل).

شاهد آخر الأخبار هنا: http://docs.dexcalibur.org/News.html

شاهد فيديوهات توضيحية لـ Dexcalibur: عرض توضيحي: أقل من دقيقة لوضع hooks على 61 طريقة؟ ليست مشكلة. (youtube)

كيف تدعم Dexcalibur؟

ساهم!

لا تتردد! هناك عدة طرق للمساهمة:

  • قم بإنشاء pull request مرتبط بإصلاح أو ميزة جديدة
  • أنشئ issue لمساعدتي في تصحيح/تطوير الأدوات
  • ساعدني في تطوير واجهة المستخدم
  • أرسل لي بريدًا إلكترونيًا بتعليقاتك
  • إلخ ...

أ. التثبيت

أ.1 تثبيت جديد

اذهب إلى وثائق التثبيت

بديل: استخدم Docker

  • على جهاز المضيف، قم بتثبيت adb (ومحاكي Android إذا كان مناسبًا)
  • docker-compose build android-dexcalibur
  • docker run --rm -it --net=host -v /tmp/dexcalibur:/shared -p 8000:8000 dexcalibur:2023.01 /bin/bash

أ.2 تشغيل Dexcalibur

لنظامي Linux و MacOS

تثبيت NPM: إذا تم تثبيت Dexcalibur بشكل عام باستخدام NPM (خيار -g)، فيمكن تشغيل Dexcalibur من الطرفية عن طريق كتابة $ dexcalibur، وإلا فمن الموقع يمكن تشغيله بكتابة $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js.

تثبيت من المصدر: من مجلد dexcalibur، قم بتشغيل $ dexcalibur أو $ node dexcalibur.js.

لنظام Windows

تثبيت NPM: حتى إذا تم تثبيت Dexcalibur بشكل عام باستخدام NPM (خيار -g)، يجب تشغيل Dexcalibur من الطرفية عن طريق تشغيل الأمر التالي من terminal: node <NPM_ROOT>/dexcalibur/dexcalibur.js.

تثبيت من المصدر: من مجلد dexcalibur، في الطرفية، قم بتشغيل الأمر node dexcalibur.js.

أ.3 التحديث

من إصدار <= 0.6.x

هل تستخدم إصدارًا سابقًا من Dexcalibur؟

اتبع نفس خطوات التثبيت الجديد، وعندما يُطلب منك إدخال مسار مساحة العمل، أدخل موقع مساحة العمل الحالية.

من إصدار >= 0.7

فقط عن طريق:

$  npm install -g dexcalibur

سيتم الكشف تلقائيًا عن التكوين ومساحة العمل الحاليين.

ج. لقطات الشاشة

تُظهر لقطات الشاشة التالية التحديث التلقائي لـ xrefs أثناء التشغيل.

Xref auto update

Features

د. الميزات والقيود

حاليًا، أكبر قيد هو أن Dexcalibur غير قادر على إنشاء كود مصدر لـ hook يستهدف دوال أصلية (في مكتبة JNI). ومع ذلك، يمكنك التصريح يدويًا عن Interceptor من Frida عن طريق تعديل hook.

بافتراض أن Dexcalibur لا يوفر (حاليًا) ميزات لتحليل الجزء الأصلي مثل مكتبة JNI أو JNA، فقد تم تفصيل الميزات والقيود المتعلقة بجزء Java فقط.

دقة التحليل تعتمد على اكتمال صورة Android API المستخدمة خلال الخطوات المبكرة للتحليل. وهذا يعني، إذا كنت تستخدم ملف DEX تم إنشاؤه من ملف Android.jar من Android SDK، فقد تكون بعض المراجع إلى الدوال الداخلية، أو الحقول، أو الفئات من واجهة برمجة تطبيقات Android Java مفقودة. يتم الحصول على نتائج أفضل عندما يبدأ التحليل من ملف "boot.oat" مستخرج مباشرة من جهاز حقيقي يعمل بالإصدار المتوقع من Android.

د.1 الميزات

د.1.A المحلل الثابت

TODO: كتابة نص

د.1.B مدير hooks

TODO: كتابة نص

د.1.C آلة smali الافتراضية لـ Dexcalibur

السلوكيات المتتبعة

المحلل الثابت المشارك في إجراء "Run smali (VM)" قادر على اكتشاف وقبول ولكن تتبع السلوكيات التالية:

  • سجل وجهة خارج الحدود (register خارج v0 - v255)
  • سجل مصدر خارج الحدود (register خارج v0 - v65535)
  • كشف تعليمات غير صالحة ترمي ضمنيًا استثناء داخليًا
  • كشف بعض أجزاء bytecode الصالحة غير المتوافقة مع مواصفات Android
  • حساب طول مصفوفة غير محددة
  • ملء مصفوفة غير محددة
  • والمزيد ...

حاليًا، لا يتم دعم المعالجات/المستمعين لمثل هذه التعليمات غير الصالحة ولكن يتم تتبع الأحداث وعرضها.

IR الخاص بـ Dexcalibur

تنتج الآلة الافتراضية تمثيلًا وسيطًا (IR) مخصصًا ومبسطًا يتم عرضه فقط لمساعدة المحلل في إجراء تحليله.

اعتمادًا على قيمة عمق callstack والتكوين، يمكن أن يتضمن IR التعليمات المنفذة داخل الدالة المستدعاة أو لا. إذا دخل التنفيذ في كتلة try واستمر حتى الإرجاع، ولكن لم ينفذ catch، فلن يتم عرض كتلة catch. في الواقع، الغرض من IR الخاص بـ Dexcalibur هو عرض "ما تم تنفيذه" أو "ما يمكن تنفيذه اعتمادًا على قيمة بعض الرموز" في سياق الآلة الافتراضية.

يساعد IR الخاص بـ Dexcalibur في قراءة نسخة منقحة من bytecode عن طريق إزالة goto غير الضرورية و predicate غير الشفافة. يمكن إنشاء IR الخاص بـ Dexcalibur بواسطة الآلة الافتراضية بمستويين من التبسيط:

المستوى الأول من IR، يمكن استخدامه إذا كنت لا تثق في المستوى الثاني من IR:

  • لا يوجد تبسيط لـ CFG: يتم عرض القفزات الشرطية وغير الشرطية.
  • يتم عرض كل move إلى register

المستوى الثاني:

  • إخفاء التعيين إذا لم يتم تعديل register بقيمة غير معروفة قبل استخدامه.
  • إزالة predicate الصحيح دائمًا/الخاطئ دائمًا
  • إزالة القفزات غير الشرطية مثل goto تحت ظروف معينة: سلف واحد فقط للكتلة الأساسية المستهدفة، إلخ ...
  • حل واستبدال استدعاء Method.invoke() بالطريقة المستدعاة إذا أمكن.
  • لا يتم عرض التعليمات داخل كتلة Try إذا تم رمي استثناء قبلها
  • ...

محاكاة Android API

TODO

التفاصيل

تتبع الآلة الافتراضية smali الخطوات التالية:

  1. تهيئة الآلة الافتراضية: ذاكرة المكدس، الكومة، محملات الفئات، منطقة الطرق، ...
  2. تقوم الآلة الافتراضية بتحميل الفئة التي تعلن عن الطريقة.
  3. (اختياري) إذا كانت الفئة تحتوي على كتل ثابتة، يتم تنفيذ clinit(). يساعد ذلك في حل القيمة الملموسة المخزنة في الخصائص الثابتة.
  4. تحميل بيانات الطريقة الوصفية
  5. تنفيذ تعليمات الطريقة، إذا كان PseudoCodeMaker مفعلًا، يتم إنشاء IR الخاص بـ Dexcalibur.

كيف تتعامل الآلة الافتراضية مع تعليمات invoke-*؟

  1. عند حدوث invoke-*، يتم حفظ جدول الرموز المحلي، ويتم تحميل الطريقة المستدعاة.
  2. إذا لم يتم تحميل الفئة المعلنة للطريقة المستدعاة من قبل، يتم تحميل الفئة.
  3. إذا لم يتم تحميل الطريقة من قبل، يتم تحميل الطريقة (بواسطة MethodArea) ويتم تهيئة جدول الرموز المحلي الخاص بها عن طريق استيراد رموز الوسائط من جدول رموز المتصل.
  4. يتم دفع الطريقة المستدعاة إلى callstack (StackMemory).
  5. يتم تنفيذ تعليمات الطريقة.
  6. يتم دفع الإرجاع إلى ذاكرة المكدس.
  7. يستعيد المتصل التحكم في التدفق.

د.1.D محللو طوبولوجيا التطبيق

تنزيل الأداة