ينفذ الامتداد دعم بنية eBPF لـ Ghidra ويسمح بتفكيك برامج eBPF وتفكيكها.
منذ مايو 2023، تم إدراج eBPF-for-Ghidra في مستودع NationalSecurityAgency/Ghidra الرسمي .
يمكنك الحصول على آخر التحديثات والإصلاحات لوحدة eBPF مباشرة في Ghidra.
قد تتم أرشفة هذا الريبو في المستقبل.
مثال لبرنامج eBPF يمكنك الحصول عليه هنا.
مثال على تفكيك وتفكيك eBPF:
File → Install Extensions...
GHIDRA_INSTALL_DIR=${GHIDRA_HOME} gradle
واستخدم Ghidra لتثبيته: File → Install Extensions...
GhidraExtensions
.03.09.2019 — تنفيذ خرائط eBPF، وتم تنفيذ معالج النقل المخصص
19.09.2019 — تم حل مشكلة المكدس
20.09.2019 — تم تنفيذ مساعدات الاتصال eBPF كمكالمات نظام، وتمت إضافة توقيع المساعد من خلال eBPFAnalyzer المخصص
23.09.2019 - تم إصلاح الإشارات المرجعية السيئة
01.12.2020 — تمت إضافة مساعدين جدد لـ eBPF
23.06.2022 — تمت إضافة دعم للمكالمات النسبية (نوع النقل R_BPF_64_32
). شكرًا @cnwangjihe على هذه الفكرة. imm
لتعليمات الاتصال حيث يحتوي bpf_call->src_reg == BPF_PSEUDO_CALL
الآن على الإزاحة النسبية للوظيفة المستهدفة.
قبل:
بعد:
24.06.2022 - تقديم طلب السحب إلى مستودع Ghidra الرسمي باعتباره المورد الرئيسي لمعالج eBPF
19.12.2022 — تمت إضافة دعم لعمليات BPF_ATOMIC، تمت إضافة تعليمات ALU32، تمت إضافة تعليمات BPF_JMP32، تم إصلاح تعليمات JSET
03.05.2023 — تمت إضافة دعم معالج eBPF إلى مستودع Ghidra الرسمي في الالتزام 506ca1e
بدءًا من Ghidra 10.3، يتم تضمين وحدة eBPF بشكل افتراضي في Ghidra. ليست هناك حاجة لبناء هذا المشروع وإضافته كامتداد لغيدرا بعد الآن. بالنسبة لمستخدمي الإصدارات الأقدم من غيدرا، لا يزال من الممكن الوصول إلى وحدة eBPF من خلال الإصدارات الحالية.
وثائق النواة الرسمية
وثائق النواة الرسمية - الأسئلة
برامج eBPF للاختبار في الغيدرا
مفكك eBPF بسيط في الصدأ
جهاز Rust الظاهري ومترجم JIT لبرامج eBPF
مساعدو eBPF (الكل)
نظرة عامة على eBPF