مكتبة مشتركة بين الأنظمة الأساسية لتصحيح الأخطاء الثنائية واختراق الذاكرة مكتوبة بلغة Rust.
minidump
، PE file
، أو حتى مساحة OS-Kernel بامتداد إضافي. هناك نوعان رئيسيان من الواجهات في udbg، معلومات الهدف وواجهات تصحيح الأخطاء.
تمثل واجهات معلومات الهدف، والتي تم تجريدها كسمة UDbgTarget
، هدف تصحيح يمكن ملاحظته، وهي active process
في معظم الحالات، كما يمكن أن تكون minidump
، أو PE file
، أو حتى مساحة OS-Kernel بامتداد إضافي.
يحتوي UDbgTarget
على هذه الوظائف، memory operation
(قراءة/كتابة/تعداد)، تعداد module
، تعداد thread
، تعداد handle/FDs
، وما إلى ذلك. بناءً على هذه الوظائف، يمكننا تنفيذ بعض الأدوات المساعدة على أنواع مختلفة من الهدف، مثل تفريغ الوحدة ، البحث عن الذاكرة ، ومسح الخطاف ، ومسح التعليمات البرمجية الضارة ، وما إلى ذلك.
توفر واجهات تصحيح الأخطاء، والتي تم تجريدها كسمة UDbgEngine
، بشكل أساسي القدرة على التحكم في العملية. يوجد default implementation
، عادةً ما يغلف وظائف تصحيح الأخطاء على نظام التشغيل Windows، ويغلف واجهات ptrace على نظام Linux.
تم تصميم معظم الواجهات المذكورة أعلاه لتكون كائنات ديناميكية، وهي مناسبة لربط البرامج النصية، ويوفر udbg lua bindings
بشكل افتراضي.
الوضع الحالي لواجهات المعلومات المستهدفة
المنصة/الهدف | تشغيل الذاكرة | قائمة الذاكرة | خيط | الوحدة/الرمز | مقبض/قائمة FD |
---|---|---|---|---|---|
عملية ويندوز | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
عملية لينكس | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
عملية ماك | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
تفريغ صغير | ✔️ (للقراءة فقط) | ✔️ | ✔️ | ✔️ | ؟ |
ملف PE | ✔️ (للقراءة فقط) | ✔️ | - | - | - |
الوضع الحالي لواجهات التصحيح
المنصة/الهدف | رمز التصحيح | نقطة توقف | نقطة المراقبة (HWBP) | هدف متعدد |
---|---|---|---|---|
ويندوز (x86/x64) | ✔️ (بي دي بي) | ✔️ | ✔️ | ✔️ |
ويندوز (آرتش64) | ✔️ (بي دي بي) | ✔️ | ✔️ | ✔️ |
لينكس (x86_64) | ✔️ (قزم) | ✔️ | ✔️ | ✔️ |
لينكس (آرتش64) | ✔️ (قزم) | ✔️ | ✔️ | ✔️ |
src/test.rs
fn target
src/test.rs
fn test_debug