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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ghidra-evm — وحدة Ghidra لفك التجميع وفك الترجمة وتحليل Bytecode العقود الذكية في إيثريوم. تكتشف التعليمات غير الآمنة، وتستخرج الطرق المخفية، وتنشئ رسوم تدفق التحكم (Control-Flow Graphs) لتدقيق الأمان. | Kitploit
أدوات/GitHubGitHub/adelapie/ghidra-evm
التحليل الثابتتحليل الثغرات الأمنيةالهندسة العكسيةتحليل الملفات الثنائية
GitHubadelapie/ghidra-evm

ghidra-evm

وحدة Ghidra لفك التجميع وفك الترجمة وتحليل Bytecode العقود الذكية في إيثريوم. تكتشف التعليمات غير الآمنة، وتستخرج الطرق المخفية، وتنشئ رسوم تدفق التحكم (Control-Flow Graphs) لتدقيق الأمان.

عرض المستودع
14929منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

وحدة Ghidra EVM

front

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

ghidra-EVM هي وحدة Ghidra للهندسة العكسية للعقود الذكية. يمكن استخدامها لتنزيل رمز بايت آلة إيثريوم الافتراضية (EVM) من سلسلة كتل إيثريوم، ثم تفكيك وإعادة تجميع العقد الذكي. علاوة على ذلك، يمكنها تحليل كود الإنشاء، والعثور على دوال العقد، وتحديد التعليمات غير الآمنة.

تتكون من وحدة معالج، ومُحمّل مخصص، وإضافات تقوم بتفكيك رمز بايت آلة إيثريوم الافتراضية (EVM) وإنشاء رسم بياني لتدفق التحكم (CFG) للعقد الذكي.

النسخة الأخيرة تستخدم واجهة برمجة تطبيقات Ghidra 9.1.2. تعتمد على مكتبة crytic evm_cfg_builder (https://github.com/crytic/evm_cfg_builder) لمساعدة Ghidra في عملية إنشاء CFG.

تتكون Ghidra-evm من:

  • مُحمّل يقرأ رمز البايت والرمز السداسي العشري من ملفات .evm و .evm_h على التوالي (انظر الأمثلة).
  • تعريف SLEIGH لمجموعة تعليمات EVM مع مراعاة قيود نواة Ghidra (انظر الملاحظات).
  • نص برمجي مساعد يستخدم evm_cfg_builder و ghidra_bridge لمساعدة Ghidra في إنشاء CFG واستكشاف خصائص الدوال للعقد الذكي.
  • مجموعة من النصوص البرمجية التي تساعد في الهندسة العكسية لجوانب مختلفة من العقد الذكي:
Scriptالوصف
search_codecopy.pyعند تحليل كود الإنشاء في عقد ذكي، يمكننا رؤية دالة _dispatcher فقط التي تستخدم CODECOPI لكتابة كود وقت التشغيل في الذاكرة. يبحث هذا النص عن تعليمات CODECOPI المفيدة ويجد دوال العقد الذكي المخفية في جزء وقت التشغيل من العقد.
search_dangerous_instructions.pyيمكن أحيانًا إساءة استخدام تعليمات مثل CALL، CALLCODE، SELFDESTRUCT و DELEGATECALL لتحويل الأموال إلى عقد آخر. يقوم هذا النص بالعثور عليها وإنشاء تسمية لكل occurrence.
load_external_contract.pyيقوم بتنزيل رمز بايت العقد الذكي من سلسلة الكتل إلى ملف .evm_h يمكن تحميله إلى ghidra-evm.

تعليمات التثبيت

  • قم بتثبيت ghidra_bridge، باتباع التعليمات على https://github.com/justfoxing/ghidra_bridge
  • قم بتثبيت مكتبة crytic evm_cfg_builder، باتباع التعليمات على https://github.com/crytic/evm_cfg_builder
  • قم بتثبيت آخر إصدار من ghidra-evm في ghidra_evm/dist/:
    • افتح Ghidra
    • File -> Install Extensions
    • انقر على '+' واختر ملف zip مثل ghidra_9.1.2_PUBLIC_20201102_ghidra_evm.zip
    • انقر OK
    • أعد تشغيل Ghidra

تعليمات التجميع

يمكن استخدام محتويات دليل ghidra-evm لإنشاء وحدة Ghidra في Eclipse تحتوي على معالج ومُحمّل بهدف توسيع أو تصحيح ghidra_evm.

الدروس التعليمية

middle

التكامل مع أدوات التنفيذ الرمزي الخارجية

Scriptالوصف
teetherيحدد المسار الحرج في Ghidra قبل إنشاء الاستغلال. يتطلب teether.

ملاحظات

  • يتم إنشاء CFG وفقًا لـ evm_cfg_builder: يتم استخدام تعليمات JUMP و JUMPI.
  • يتم إنشاء جدول قفز بحجم 32×32 (evm_jump_table) وفقًا لذلك لاكتشاف وإظهار الفروع في نافذتي التفكيك وتدفق التحكم.
  • لم يتم تصميم Ghidra للتعامل مع البنى والذاكرات ذات حجم كلمة > 64 بت. هذا يعني أن تعليمات مثل PUSH32 لا تظهر بشكل صحيح في نافذة إعادة التجميع.

الترخيص

Ghidra-evm مرخصة وموزعة بموجب AGPLv3.

الشكر

  • تم دعم هذا العمل من قبل المفوضية الأوروبية من خلال مشروع M-Sec التابع لبرنامج H2020 بموجب المنحة رقم 814917.
  • تم تقديم Ghidra-EVM في مسار الأرسنال في Black Hat Asia 2021. يمكنك العثور على الشرائح هنا.
تنزيل الأداة
الدرسالوصف
الاستخدامتعليمات استخدام بسيطة مع test.evm
تحليل رمز بايت الإنشاءاستخدام search_codecopy.py لتحليل كود الإنشاء وإيجاد الدوال المخفية
البحث عن تعليمات خطيرةاستخدام search_dangerous_instructions.py لتحليل occurrence من SELFDESTRUCT
تنزيل رمز بايت عقد ذكي من سلسلة الكتل إلى Ghidraاستخدام load_external_contract.py لتنزيل رمز بايت EVM من سلسلة الكتل إلى ملف .evm_h