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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
obfuscation_analysis — إضافة Binary Ninja لتحليل الشيفرة المشوّشة وتبسيطها | Kitploit
أدوات/GitHubGitHub/mrphrazer/obfuscation_analysis
التحليل الثابتتحليل الكودالهندسة العكسيةتحليل البرمجيات الخبيثةالأدوات والمكوناتتحليل الملفات الثنائية
GitHubmrphrazer/obfuscation_analysis

obfuscation_analysis

إضافة Binary Ninja لتحليل الشيفرة المشوّشة وتبسيطها

عرض المستودع
2552321منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

تحليل التشويش (v1.3)

المؤلفون: Tim Blazytko و Nicolò Altamura

تحليل وتبسيط الشيفرة المشوَّشة

الوصف:

تحليل التشويش هو إضافة لـ Binary Ninja تُخفّف عناء التعامل مع الملفات الثنائية المحمية بشكل مكثّف. وهي تجمع مجموعة من الأدوات المساعدة المركّزة التي تتيح لك

  • تبسيط تعبيرات الحساب المختلط المنطقي (MBA) بنقرة واحدة (استنادًا إلى msynth)
  • تحديد الدوال ذات التفكيك المعطوب وتنظيفها

يمكن العثور على بعض حالات الاستخدام النموذجية في examples. علاوةً على ذلك، يعرض حديث REcon بعنوان "Breaking Mixed Boolean-Arithmetic Obfuscation in Real-World Applications" بعض حالات الاستخدام. يمكن العثور على الشرائح هنا. تُكمّل هذه الإضافة أداة Obfuscation Detection: فبمجرد الإشارة إلى الدوال المشبوهة، تساعدك Obfuscation Analysis على تنظيفها وفهمها. وستُضاف المزيد من الأدوات المساعدة بمرور الوقت.

الميزات الأساسية

  • تبسيط تشويش الحساب المختلط المنطقي في عرض المُفكِّك (decompiler) الخاص بـ Binary Ninja
  • تحديد وإزالة الدوال ذات التفكيك المعطوب
  • تضمين الدوال (inlining) في عرض المُفكِّك
  • تنفيذ فعّال ومستقل عن المعمارية
  • يعمل كمهمة في الخلفية
  • معالجة دقيقة للأخطاء: رسائل موجزة للمستخدم، وتتبّع كامل في سجل Debug

التثبيت

يمكن تثبيت الأداة باستخدام مدير الإضافات الخاص بـ Binary Ninja.

للتثبيت اليدوي، اتبع هذه الخطوات في مجلد إضافات Binary Ninja:

root@kitploit:~
git clone https://github.com/mrphrazer/obfuscation_analysis.git
cd obfuscation_analysis

# optionally: use a virtual environment
python -m venv obfana-env
source obfana-env/bin/activate

# install requirements
pip install -r requirements.txt

إذا كنت تستخدم بيئة افتراضية، فستحتاج إلى تعيين مسار site-packages يدويًا في إعدادات Binary Ninja.

الاستخدام

تتوفر الإضافة من القائمة العلوية في Binary Ninja ضمن Plugins -> Obfuscation Analysis.

Plugin Menu

تبسيط MBA

لتبسيط التشويش الحسابي، حدّد أولًا تعبير HLIL الذي تريد تبسيطه في عرض المُفكِّك. بعد ذلك، اختر Plugins -> Obfuscation Analysis -> MBA Simplification -> Slice & Simplify. تحلّ الإضافة الحساب الكامل، وتمرّره عبر msynth، وتُدرج النتيجة المبسّطة كتعليق على السطر نفسه. يُظهر العرض المتحرك القصير أدناه سير العمل بالكامل:

MBA Simplification Workflow

يعتمد تبسيط MBA على msynth. افتراضيًا، تستخدم الإضافة oracle التبسيط الافتراضي في msynth، والذي يأتي مع الإضافة ومُهيّأ مسبقًا. إذا أردت استخدام oracle أكبر أو مخصّص، فعيّن obfuscation_analysis.mba_oracle_path يدويًا أو تصفّح إلى الملف في نافذة Settings الخاصة بـ Binary Ninja.

Plugin Settings

إذا حدث خطأ ما، تكتب الإضافة رسالة موجزة على مستوى المستخدم في لوحة Log؛ بدّل عرض السجل إلى Debug لرؤية التتبّع الكامل.

Log Output

الميزات

تأتي الإضافة بأدوات مساعدة مركّزة تستهدف العقبات الشائعة التي تواجهها عند عكس هندسة الملفات الثنائية المحمية، وكل منها قابل للتشغيل كمهمة في الخلفية من واجهة المستخدم أو من نصوص برمجية بدون واجهة. فيما يلي الميزات المتاحة حاليًا.

الدوال المعطوبة

الدوال المعطوبة هي الدوال التي يُظهر تفكيكها آثارًا غير معرّفة—كتل أساسية فارغة، وتعليمات غير صالحة أو متداخلة، وما شابه ذلك. تتجوّل هذه الأداة المساعدة في كامل BinaryView، وتُشير إلى الدوال التي تحمل هذه الأعراض، وتُدرجها بحيث يستطيع المحلّل فحص الشيفرة التي أُسيء تحليلها أو شُوّشت عمدًا بسرعة. يؤدي إجراء الإزالة الاختياري إلى محو كل دالة مُشار إليها وفرض تحليل جديد، ما ينظّف قائمة الدوال. وهو مفيد بشكل خاص في تحديد

  • كتل البيانات التي رقّاها المُفكِّك عن طريق الخطأ إلى شيفرة
  • مقاطع التشويش (stubs) التي تكسر التفكيك الخطي
  • الدوال التي تستخدم تعليمات متداخلة أو قفزات غير محاذاة
  • المشكلات المتعلقة بالمعماريات الأحدث حيث تُصادف تعليمات غير شائعة

تبسيط MBA

الحساب المختلط المنطقي (MBA) هو تقنية تشويش تدفن حسابات بسيطة في سلاسل طويلة من العمليات الحسابية والمنطقية. تُبسّط هذه الميزة مثل هذه التعبيرات في المُفكِّك. عند اختيارك لتعليمة HLIL، تجمع الإضافة سلسلة حسابها الكاملة عبر شريحة خلفية SSA (SSA backward slice) مقيّدة بالكتلة الأساسية الحالية، وتترجم تلك الشريحة إلى Miasm IR، وتُمرّرها إلى msynth، ثم تُضيف النتيجة المبسّطة كتعليق في عرض المُفكِّك. تتيح لك هذه الميزة

  • طيّ تشابكات MBA متعددة الأسطر إلى معادلة واحدة قابلة للقراءة
  • حلّ المسندات المعتمة (opaque predicates) التي تعتمد على MBA
  • طيّ ترميزات الثوابت المتشابكة وصولًا إلى قيمتها الحرفية

تضمين الدوال

بالنسبة للدالة المحدّدة حاليًا، تُضمّن هذه الأداة المساعدة كل دالة مستدعاة (callee) بشكل تكراري داخل عرض المُفكِّك، ما يمنح Binary Ninja لغة وسيطة (IL) واحدة مكتفية بذاتها. ومع زوال كل الحدود، يستطيع المُفكِّك نشر البيانات عبر الدوال، ما يتيح طيًا أعمق للثوابت، وإزالة الشيفرة الميتة، ومنطقًا أوضح عمومًا. استخدمها من أجل

  • طيّ سلاسل الأغلفة الصغيرة، أو thunks، أو دوال الوصول المساعدة
  • تحسين تمثيلات الخوارزميات التي قُسّمت عبر دوال متعددة
  • تحليل مخططات التشويش التي يُشتّت فيها المنطق عمدًا بين الدوال

لاحظ أن HLIL قد يصبح ضخمًا جدًا وبطيئًا في العرض على الدوال الكبيرة جدًا أو أشجار الاستدعاء العميقة. علاوةً على ذلك، قد تصبح بعض تحسينات المُفكِّك أقل فعالية بمجرد دمج كل شيء في وحدة واحدة. للتحكم في ذلك، يمكنك تحديد عمق التضمين: عيّن Settings -> Obfuscation Analysis -> Max Function Inlining Depth إلى حدّ أعلى N (المضبوط افتراضيًا على 1). مع حدّ العمق، تُضمَّن فقط أول N من مستويات الاستدعاء؛ ولا تُضمَّن الاستدعاءات الأعمق.

القيود

للإضافة بعض التحفظات التي ينبغي أن تكون على دراية بها، ومعظمها متعلق بمسار تبسيط MBA:

  • خطأ في Binary Ninja: في BN 5.0 stable، قد تفشل خطوة التقطيع الخلفي (backward-slicing) بسبب غياب تحويلات أنواع HLIL: https://github.com/Vector35/binaryninja-api/issues/6371؛ وقد أُصلحت المشكلة في 5.1.7477-de وما بعده

  • الشريحة محصورة في كتلة أساسية واحدة: تُتجاهل تعريفات المتغيرات الواقعة في الكتل السابقة (غالبًا ما تكون معتمدة على تدفق التحكم)، لذا قد تبقى بعض حدود MBA محلولة جزئيًا

  • فجوات الترجمة من HLIL إلى Miasm IR: ليست كل بنية HLIL لها مقابل سليم في Miasm؛ وعند فشل الترجمة يُتخطّى التعبير ويُسجَّل خطأ

  • تغطية IL: عُقد تدفق التحكم وعمليات الفاصلة العائمة غير مترجمة حاليًا

  • قيود msynth الموروثة: يَرِث تبسيط MBA كل قيود msynth

التواصل

لمزيد من المعلومات، تواصل مع Tim Blazytko (@mr_phrazer) أو Nicolò Altamura (@nicolodev).

تنزيل الأداة