
HyperDbg v0.23
أدوات تصحيح أخطاء أصلية متطورة
HyperDbg Debugger

HyperDbg Debugger هو مصحح أخطاء مفتوح المصدر مدعوم بالمُشغِّل الافتراضي (hypervisor) لنظام Windows (دعم Linux قيد التطوير حاليًا!) مع دعم لتصحيح الأخطاء في كل من وضع المستخدم ووضع النواة (الأصلي). وهو مبني للهندسة العكسية، والاختبار العشوائي (fuzzing)، وتحليل الأنظمة المتقدمة باستخدام ميزات المحاكاة الافتراضية والتتبع الحديثة للعتاد.
يمكنك متابعة HyperDbg على Twitter أو Mastodon لتلقي إشعارات حول الإصدارات الجديدة، أو الانضمام إلى أي من مجموعات HyperDbg، حيث يمكنك سؤال المطورين وهواة الهندسة العكسية مفتوحة المصدر للمساعدة في إعداد HyperDbg واستخدامه.
الوصف
HyperDbg مبني حول تقنيات المحاكاة الافتراضية للعتاد الحديثة لتقديم قدرات تتجاوز تلك التي توفرها مصححات الأخطاء التقليدية. يعمل فوق نظام التشغيل عن طريق محاكاة نظام يعمل بالفعل باستخدام Intel VT-x وجداول الصفحات الموسعة (EPT). ومن خلال الجمع بين المحاكاة الافتراضية وتقنيات التتبع المتقدمة مثل Intel Processor Trace (Intel PT)، يوفر HyperDbg قدرات قوية للتتبع وVirtual Machine Introspection (VMI).
القدرات الأساسية
HyperDbg يوفر مجموعة واسعة من ميزات تصحيح الأخطاء المتقدمة، بما في ذلك عدة أنواع من الخطافات المخفية القائمة على EPT. يمكنه محاكاة نقاط توقف عتاد البيانات لمراقبة قراءات وكتابات وتنفيذ الذاكرة في نطاقات عناوين محددة مع بقائه شفافًا لكل من نظام التشغيل والتطبيقات المستهدفة. على عكس مسجلات تصحيح الأخطاء العتادية، فإن هذه الإمكانيات للمراقبة ليست محدودة بعدد مسجلات التصحيح المتاحة أو قيود الحجم. علاوة على ذلك، فإن HyperDbg قادر على تتبع التنفيذ عبر مستويات الامتياز المختلفة، بما في ذلك الانتقالات من وضع المستخدم إلى وضع النواة (على سبيل المثال، عبر استدعاءات النظام، وheaven's gate، والأخطاء (faults)، والاستثناءات، والمقاطعات)، ومن النواة إلى برامج تشغيل الأجهزة، ومن وضع النواة مرة أخرى إلى وضع المستخدم، مما يتيح تحليلًا شاملًا لمسار التنفيذ بالكامل.
بالإضافة إلى ذلك، يدعم HyperDbg ربط استدعاءات النظام، وتتبع تدفق التحكم من خلال ميزات تتبع العتاد، ومراقبة شاملة لعمليات الإدخال/الإخراج، بما في ذلك كل من الإدخال/الإخراج المعيّن في الذاكرة (MMIO) والإدخال/الإخراج المعيّن بالمنافذ (PMIO)، مما يتيح تحليلًا مفصلاً لتفاعلات الأجهزة والملحقات الخارجية.
علاوة على ذلك، يتضمن HyperDbg مجموعة كبيرة من الأحداث الإضافية المصممة خصيصًا للهندسة العكسية، وتحليل البرمجيات الخبيثة، وتحليل البرامج منخفضة المستوى. للحصول على قائمة كاملة بالأحداث المدعومة وتوثيقها، راجع قائمة الميزات الكاملة.
HyperDbg مصمم للعمل بأكبر قدر ممكن من التخفي. فهو لا يستخدم أي واجهات برمجة تصحيح أخطاء لتصحيح نظام التشغيل أو أي تطبيق، لذلك لن تكتشفه الطرق التقليدية لمكافحة التصحيح. كما يتضمن وحدة متخصصة مصممة لتعزيز قدرات التخفي. تراقب هذه الوحدة محاولات كشف وجود مشغّل افتراضي أو مصحح أخطاء وتطبق تقنيات متنوعة للإبلاغ عن آليات الكشف هذه ثم التخفيف منها أو تجاوزها. على الرغم من أنه لا يمكن ضمان الشفافية الكاملة في جميع السيناريوهات، إلا أن هذه الميزات تزيد بشكل كبير من صعوبة اكتشاف HyperDbg، مما يجعل من الصعب جدًا على التطبيقات، وأدوات التغليف (packers)، وواقيات البرمجيات، والبرمجيات الخبيثة، وأنظمة مكافحة الغش، والآليات الأمنية الأخرى تحديد وجوده.
لماذا HyperDbg؟
إن إعداد واستخدام HyperDbg أصعب، ويتطلب معرفة أعمق بمستوى النظام المنخفض مقارنة بمصححات الأخطاء التقليدية. ومع ذلك، فإنه يوفر ميزتين رئيسيتين:
-
التحكم الكامل في النظام ونظام التشغيل
يعمل HyperDbg على مستوى المشغّل الافتراضي، مما يمنحك قدرات قوية غير ممكنة ببساطة مع مصححات الأخطاء التقليدية. وهذا يتيح لك الاستفادة من الميزات المدعومة بالعتاد لسيناريوهات الهندسة العكسية وتصحيح الأخطاء المتقدمة. -
التخفي ومقاومة الاكتشاف
نظرًا لأن HyperDbg لا يعتمد على واجهات برمجة تصحيح الأخطاء القياسية لنظام التشغيل، فإن اكتشافه أصعب بكثير عمومًا (وإن لم يكن مستحيلًا). وهذا يجعله خيارًا قويًا عند العمل ضد حمايات مكافحة التصحيح.
هذه المزايا تفتح آفاقًا لتقنيات جديدة كليًا في تصحيح الأخطاء والهندسة العكسية تتجاوز ما يمكن أن تقدمه مصححات الأخطاء التقليدية.
البناء والتثبيت
يمكنك تنزيل أحدث الملفات الثنائية المترجمة من الإصدارات؛ وإلا، إذا كنت تريد بناء HyperDbg، فيجب عليك استنساخه باستخدام العلم --recursive.```
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
يرجى زيارة **[التثبيت والبناء](https://docs.hyperdbg.org/getting-started/build-and-install)** و**[البدء السريع](https://docs.hyperdbg.org/getting-started/quick-start)** للحصول على شرح مفصّل حول كيفية البدء مع **HyperDbg**. يمكنك أيضًا الاطلاع على **[الأسئلة الشائعة](https://docs.hyperdbg.org/getting-started/faq)** لمزيد من المعلومات، أو إذا كنت قد استخدمت سابقًا مصححات أصلية أخرى مثل GDB أو LLDB أو WinDbg، يمكنك الاطلاع على [خريطة الأوامر](https://hyperdbg.github.io/commands-map).
## دروس تعليمية
سلسلة الدروس التعليمية **من OpenSecurityTraining2 "Reversing with HyperDbg (Dbg3301)**"، المتاحة على [**موقع OST2**](https://ost2.fyi/Dbg3301) (_المفضَّل_) و[**يوتيوب**](https://www.youtube.com/playlist?list=PLUFkSN0XLZ-kF1f143wlw8ujlH2A45nZY) هي الطريقة الموصى بها للبدء مع HyperDbg وتعلُّمه. ترشدك خلال الخطوات الأولية لاستخدام HyperDbg، وتغطي المفاهيم والمبادئ الأساسية ووظائف التصحيح، إلى جانب أمثلة عملية والعديد من أساليب الهندسة العكسية الفريدة في HyperDbg.
إذا كنت مهتمًا بفهم التصميم الداخلي وهندسة أنظمة الهايبرفايزر وHyperDbg، يمكنك قراءة دروس [**Hypervisor From Scratch**](https://rayanfam.com/tutorials).
## المنشورات
في حال استخدامك لأحد مكونات **HyperDbg** في عملك، فيرجى التفكير في الاستشهاد بأوراقنا البحثية.
