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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
patching — إضافة تفاعلية لتعديل الملفات الثنائية لـ IDA Pro | Kitploit
أدوات/GitHubGitHub/gaasedelen/patching
التحليل الثابتتحليل الشفرة الديناميكي (DAST)الاستغلالالهندسة العكسيةشيل كودمصممي الأخطاءتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
1.3k1491منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

patching

إضافة تفاعلية لتعديل الملفات الثنائية لـ IDA Pro

عرض المستودع

التصحيح - التصحيح الثنائي التفاعلي لـ IDA Pro

إضافة التصحيح

نظرة عامة

ليس من غير المألوف تعديل كود التجميع لتغيير سلوك برنامج قائم في تحليل البرمجيات الضارة وهندسة البرمجيات العكسية ومجالات أوسع من أبحاث الأمان. يمتد هذا المشروع من برنامج التفكيك الشهير IDA Pro لإنشاء سير عمل تفاعلي أكثر متانة للتصحيح الثنائي مصمم للتكرار السريع.

هذا المشروع حاليًا مدعوم بواسطة fork صغير من محرك Keystone الشائع، ويدعم تصحيح x86/x64 و Arm/Arm64 مع خطط لتمكين بنيات Keystone المتبقية في إصدار مستقبلي.

شكر خاص لـ Hex-Rays لدعم تطوير هذه الإضافة.

الإصدارات

  • v0.2 -- إصلاحات أخطاء مهمة، توافق مع IDA 9
  • v0.1 -- الإصدار الأولي

التثبيت

تتطلب هذه الإضافة IDA 7.6 و Python 3. وهي تدعم Windows و Linux و macOS.

يرجى ملاحظة أن الإصدارات الأقدم من IDA (8.2 وما دون) غير متوافقة مع Python 3.11 وما فوق.

التثبيت السهل

قم بتشغيل السطر التالي في وحدة تحكم IDA لتثبيت الإضافة تلقائيًا:

ويندوز / لينكس

root@kitploit:~
import urllib.request as r; exec(r.urlopen('https://github.com/gaasedelen/patching/raw/main/install.py').read())

ماك

root@kitploit:~
import urllib.request as r; exec(r.urlopen('https://github.com/gaasedelen/patching/raw/main/install.py', cafile='/etc/ssl/cert.pem').read())

التثبيت اليدوي

بدلاً من ذلك، يمكن تثبيت الإضافة يدويًا عن طريق تنزيل حزمة الإضافة القابلة للتوزيع لمنصتك من صفحة الإصدارات وفك ضغطها إلى مجلد الإضافات الخاص بك.

يوصى بشدة بتثبيت هذه الإضافة في دليل إضافات المستخدم في IDA:

root@kitploit:~
import ida_diskio, os; print(os.path.join(ida_diskio.get_user_idadir(), "plugins"))

الاستخدام

سيتم تحميل إضافة التصحيح تلقائيًا للبنيات المدعومة (x86/x64/Arm/Arm64) وحقن إجراءات التصحيح ذات الصلة في قائمة السياق بزر الفأرة الأيمن لطرق عرض التفكيك في IDA:

قائمة السياق بزر الفأرة الأيمن لإضافة التصحيح

يتم وصف قائمة كاملة بإجراءات التصحيح السياقية في الأقسام التالية.

التجميع

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

حوار التصحيح التفاعلي

سطر التجميع هو حقل قابل للتحرير يمكن استخدامه لتعديل التعليمات في الوقت الفعلي. سيؤدي الضغط على Enter إلى تأكيد (تصحيح) التعليمة المُدخلة في قاعدة البيانات.

سيتم تمييز موقعك الحالي (أي المؤشر) دائمًا باللون الأخضر. سيتم تمييز التعليمات التي ستتم الكتابة فوقها نتيجة للتصحيح / التحرير باللون الأحمر قبل تأكيد التصحيح.

تظهر التعليمات الإضافية التي ستتم الكتابة فوقها بواسطة التصحيح باللون الأحمر

أخيرًا، يمكن استخدام مفتاحي الأسهم UP و DOWN أثناء التركيز على حقل نص التجميع القابل للتحرير لتحريك المؤشر لأعلى ولأسفل في عرض التفكيك بسرعة دون استخدام الماوس.

NOP

أكثر إجراءات التصحيح شيوعًا هو تحويل تعليمة أو أكثر إلى تعليمات NOP. لهذا السبب، سيكون إجراء NOP مرئيًا دائمًا في قائمة السياق للوصول السريع.

تعليمة NOP بزر الفأرة الأيمن

يمكن تحويل التعليمات الفردية إلى NOP، بالإضافة إلى نطاق محدد من التعليمات.

فرض القفز الشرطي

فرض قفزة شرطية لتنفيذ مسار 'جيد' دائمًا هو إجراء تصحيح شائع آخر. ستظهر الإضافة هذا الإجراء فقط عند النقر بزر الفأرة الأيمن على تعليمة قفزة شرطية.

فرض قفزة شرطية

إذا كنت لا تريد أبدًا تنفيذ قفزة شرطية، يمكنك ببساطة تحويلها إلى NOP بدلاً من ذلك!

الحفظ والتطبيق السريع

يمكن حفظ التصحيحات (تطبيقها) على ملف تنفيذي محدد عبر القائمة الفرعية للتصحيح في أي وقت. يجعل إجراء التطبيق السريع حفظ التصحيحات اللاحقة باستخدام نفس الإعدادات أسرع.

تطبيق التصحيحات على الملف التنفيذي الأصلي

ستبذل الإضافة أيضًا جهدًا نشطًا للاحتفاظ بنسخة احتياطية (.bak) من الملف التنفيذي الأصلي التي تستخدمها لتطبيق مجموعة التصحيحات الحالية في قاعدة البيانات 'بنظافة' أثناء كل حفظ.

التراجع عن التصحيح

أخيرًا، إذا لم تكن راضيًا عن تصحيح ما، يمكنك ببساطة النقر بزر الفأرة الأيمن على كتل التعليمات المُصححة (الصفراء) لإعادتها إلى قيمتها الأصلية.

التراجع عن التصحيحات

بينما من 'السهل' إعادة البايتات إلى قيمتها الأصلية، قد يكون من 'الصعب' استعادة التحليل إلى حالته السابقة. قد يتطلب التراجع عن التصحيح أحيانًا إصلاحات يدوية إضافية.

الأخطاء المعروفة

  • تحسين دقة ARM / ARM64 / THUMB بشكل أكبر
  • تحديد سلوك 'أفضل' لـ cpp::like::symbols(...) / IDBs (غامض جدًا حاليًا)
  • إضافة / تحديث / تعديل / عرض / تحذير حول إدخالات إعادة التوطين؟؟
  • التعامل مع السجلات المعاد تسميتها (مثل ضد idb المُعلق بـ dwarf)؟
  • عدد من التعليمات الجديدة (حوالي 2017 وما بعده) غير مدعومة من Keystone
  • بعض ترميزات التعليمات الإشكالية من Keystone

العمل المستقبلي

إذا سمح الوقت والدافع، فقد يتضمن العمل المستقبلي:

  • تمكين البنيات الرئيسية المتبقية التي يدعمها Keystone:
    • PPC32 / PPC64 / MIPS32 / MIPS64 / SPARC / SystemZ
  • تجميع متعدد التعليمات (مثل xor eax, eax; ret;)
  • تجميع متعدد الأسطر (مثل شيل كود / تسميات تجميع)
  • تحرير تفاعلي للبايتات / البيانات / السلاسل النصية
  • تلميحات الرموز / الإكمال التلقائي / المطابقة التقريبية
  • تمييز الصياغة لسطر التجميع القابل للتحرير
  • تلميحات أفضل للأخطاء ومشكلات الصياغة وما إلى ذلك
  • NOP / فرض القفز من عرض Hex-Rays (يبدو سهلاً، لكنه ربما صعب جدًا!)
  • زر راديو للتبديل بين وضع 'الطباعة الجميلة' ووضع 'الخام'؟ أم عرض كلاهما؟
    root@kitploit:~
    Pretty:  mov     [rsp+48h+dwCreationDisposition], 3
       Raw:  mov     [rsp+20h], 3
    

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

المؤلفون

  • Markus Gaasedelen (@gaasedelen)
تنزيل الأداة