
DriverBuddy هو سكربت IDA Python يساعد في الهندسة العكسية لبرامج تشغيل نواة Windows.
DriverBuddy هو إضافة IDAPython تساعد في أتمتة بعض المهام الرتيبة المحيطة بالهندسة العكسية لبرامج تشغيل نواة ويندوز. وهو يوفر عددًا من الميزات المفيدة، مثل:
إن القدرة على تحديد موقع دالة DispatchDeviceControl والتعرف عليها تلقائيًا هي مهمة موفرة للوقت أثناء الهندسة العكسية لبرامج التشغيل. تُستخدم هذه الدالة لتوجيه جميع أكواد DeviceIoControl الواردة إلى دالة برنامج التشغيل المحددة المرتبطة بهذا الكود. كما أن التعرف التلقائي على هذه الدالة يجعل العثور على أكواد DeviceIoControl الصالحة لكل برنامج تشغيل أسرع بكثير. بالإضافة إلى ذلك، عند التحقيق في ثغرات محتملة في برنامج تشغيل بسبب تعطل، تساعد معرفة موقع هذه الدالة على تضييق نطاق التركيز إلى استدعاء الدالة المحدد المرتبط بكود DeviceIoControl المتسبب في التعطل.
هناك العديد من بنى برامج التشغيل المشتركة بين جميع برامج تشغيل WDM. القدرة على التعرف التلقائي على هذه البنى، مثل IO_STACK_LOCATION و IRP وبنى DeviceObject، يمكن أن تساعد في توفير الوقت أثناء عملية الهندسة العكسية. يحاول DriverBuddy تحديد والتعرف على العديد من هذه البنى.
كما هو الحال مع برامج تشغيل WDM، هناك العديد من الدوال والبنى المشتركة بين جميع برامج تشغيل WDF. التعرف التلقائي على هذه الدوال والبنى سيوفر الوقت أثناء عملية الهندسة العكسية ويوفر سياقًا للمناطق غير المحددة في برنامج التشغيل حيث تُستخدم هذه الدوال.
أثناء إجراء الهندسة العكسية لبرامج التشغيل، من الشائع العثور على أكواد IOCTL كجزء من التحليل. هذه الأكواد، عند فك ترميزها، تكشف معلومات مفيدة لمهندسي الهندسة العكسية وقد تركّز الانتباه على أجزاء محددة من برنامج التشغيل حيث من المرجح أن توجد الثغرات.
أهداف طموحة:
يُصدر هذا البرنامج بموجب رخصة MIT، انظر LICENSE.