انسخ المجلد المحموم من برنامج التشغيل DriverBuddyReloaded وملف البرنامج النصي DriverBuddyReloaded.py في مجلد IDA Plugins ، على سبيل المثال:
%APPDATA%Hex-RaysIDA PropluginsC:Program FilesIDA Pro 7.6plugins~/.idapro/plugins/ إذا كنت تستخدم Python v. 3.x ، قم بتشغيل idapyswitch.exe binary (الموجود في مجلد Ida) من موجه أوامر admin.
ملاحظة: مطلوب IDA SDK> V.7.5 حتى يتم تشغيل هذا البرنامج النصي.
لاستخدام ميزة التحليل التلقائي:
Edit -> Plugins -> Driver Buddy Reloaded أو اضغط على CTRL+ALT+A لبدء التحليل التلقائي.<DRIVER_NAME>.sys-YYYY-MM-DD-TIME_STAMP-DriverBuddyReloaded_autoanalysis.txt الذي يحتوي على نتائج التحليل ، سيتم كتابته ضمن دليل DB الخاص بـ IDA.لفك تشفير IOCTL:
Driver Buddy Reloaded -> Decode IOCTL ؛ بدلاً من ذلك ، اضغط على اختصار CTRL+ALT+D .لفك تشفير جميع IOCTLs ضمن وظيفة:
DispatchDeviceControl ، DispatchInternalDeviceControl ، Possible_DispatchDeviceControl_# )Driver Buddy Reloaded -> Decode ALL IOCTLs in Function ؛ بدلاً من ذلك ، اضغط على اختصار CTRL+ALT+F .DriverName.sys-2021-12-10-TIME_STAMP-IOCTLs.txt / DriverName.sys-2021-12-10-TIME_STAMP-IOCTLs.txt_dumb.txt ، والتي تحتوي على جميع IOCTLs التي تم فك تشفيرها حتى تلك اللحظة ، سيتم كتابة DB في IDA. يحتوي دليل Beannerable_Function_Lists على قوائم بالوظائف الخطيرة/الإشكالية المحتملة ، و APIs Windows و Opcodes ؛ يتم توفير وصف موجز حول سبب إدراج وظيفة/واجهة برمجة تطبيقات معينة. يمكنك تحرير القائمة custom بما في ذلك وظائف برنامج التشغيل المحددة.
ملاحظة : سوف تتطابق winapi_function_prefixes و ZwCommitComplete وما إلى ذلك) بينما ستنفيذ Zw و ZwCommitComplete وما إلى ذلك) بينما ستنفيذ ZwClose و ZwCommitComplete وما إلى ذلك) بينما تقوم winapi_functions فقط.
في find_opcodes.py ، سيمنع خيار find_opcode_data صديق برنامج التشغيل للعثور على الرموز المفردات في أقسام البيانات. سيقوم تحويله إلى True بطباعة شيء ما على هذا الخط: Found jnz short loc_15862 in sub_15820 at 0x00015852 عادةً ، عند الانتقال إلى العنوان الموضح وإعادة تحديد التحديد حيث سيعيد رمز OPCODE الذي تم تفتيشه إلى الوراء.
احترس : تحويله إلى True ، سوف يولد المزيد من الإيجابيات الخاطئة!
Buddy Buddy Reloaled هو مكون إضافي Ida Pro Python يساعد على أتمتة بعض المهام الهندسية العكسية لبرامج تشغيل Windows Kernel. يحتوي على عدد من الميزات المفيدة ، مثل:
DispatchDeviceControl / DispatchInternalDeviceControlWDF و WDMIRP و IO_STACK_LOCATIONWDF التي عادة ما تكون غير مسموعةDeviceName المحتملPooltags 
يمكن للأداة تلقائيًا تحديد موقع روتين DispatchDeviceControl وتحديده. يتم استخدام هذه الوظيفة لتوجيه جميع رموز DeviceIoControl الواردة إلى وظيفة برنامج التشغيل المحددة المرتبطة بهذا الرمز. يؤدي تحديد هذه الوظيفة تلقائيًا إلى العثور على رموز DeviceIoControl صالحة لكل برنامج تشغيل أسرع بكثير. بالإضافة إلى ذلك ، عند التحقيق في نقاط الضعف المحتملة في برنامج التشغيل بسبب تعطل ، فإن معرفة موقع هذه الوظيفة يساعد على تضييق التركيز على استدعاء الوظيفة المحددة المرتبطة برمز DeviceIoControl .
عندما يكون التحليل ناجحًا ، سيتم إعادة تسمية بعض الغواصات على النحو التالي:
DriverEntry : الروتين الأصلي الذي يوفره برنامج التشغيل الأصلي والذي يسمى بعد تحميل برنامج التشغيل. وهي مسؤولة عن تهيئة السائق.Real_Driver_Entry : عادة ما يتم نقل الوظيفة التي يتم تنفيذها من DriverEntry . عادة ما يتم تهيئة DeviceName .DispatchDeviceControl / DispatchInternalDeviceControl : إذا كانت الأداة قادرة على استرداد الوظائف في بعض الإزاحة المحددة ، فسيتم إعادة تسمية الوظائف بالاسم المناسب.Possible_DispatchDeviceControl_# : إذا لم تتمكن الأداة من استرداد DispatchDeviceControl أو DispatchInternalDeviceControl ، فإنها تستخدم بحثًا تجريبيًا ، بعد تدفق التنفيذ ، والتحقق من الحالات التي يتم فيها تحميل الوظيفة معروفة IO_STACK_LOCATION وعناوين IRP ؛ مما يشير إلى أن الوظيفة يمكن أن تكون DispatchDeviceControl. نظرًا لأنه يعتمد على الاستدلال ، فقد يعود أكثر من نتيجة واحدة ، وهو عرضة للإيجابيات الخاطئة. 
تتم مشاركة العديد من هياكل السائق بين جميع برامج تشغيل WDM / WDF . يمكن لهذه الأداة تحديد هذه الهياكل تلقائيًا ، مثل هياكل IO_STACK_LOCATION و IRP و DeviceObject ويمكن أن تساعد في توفير الوقت أثناء عملية الهندسة العكسية وتوفير سياق لمجالات السائق حيث تكون هذه الوظائف قيد الاستخدام.

أثناء عكس السائقين ، من الشائع أن تصادف رموز IOCTL كجزء من التحليل. هذه الرموز ، عند فك تشفيرها ، تكشف عن معلومات مفيدة وقد تجذب التركيز على أجزاء محددة من السائق حيث من المرجح أن توجد نقاط الضعف.
بالنقر بزر الماوس الأيمن على رمز IOCTL المحتمل ، يتم تقديم خيار قائمة السياق (بدلاً من ذلك باستخدام اختصار Ctrl+Alt+D عندما يكون المؤشر على الخط يحتوي على رمز IOCTL المشتبه به) ويمكن استخدامه لفك تشفير القيمة. سيؤدي ذلك إلى طباعة جدول مع جميع رموز IOCTL التي تم فك تشفيرها. من خلال النقر بزر الماوس الأيمن على رمز IOCTL فك التشفير ، في عرض التفكيك ، من الممكن وضع علامة عليه على أنه غير صالح ؛ هذا سوف يترك أي تعليق غير IOCTL سليمة.
إذا قمت بالنقر بزر الماوس الأيمن ، بدلاً من ذلك باستخدام اختصار Ctrl+Alt+F ، على التعليمات الأولى للوظيفة التي تعتقد أنها مرسل IOCTL ( DispatchDeviceControl ، DispatchInternalDeviceControl ، Possible_DispatchDeviceControl_# أن يكون هناك خيار ". هذا هو الاختراق بعض الشيء ولكن في معظم الأحيان يمكن أن تسرع الأمور.
DriverName.sys-2021-12-10-TIME_STAMP-IOCTLs.txt / DriverName.sys-2021-12-10-TIME_STAMP-IOCTLs.txt_dumb.txt ، والتي تحتوي على جميع IOCTLs التي تم فك تشفيرها حتى تلك اللحظة ، سيتم كتابة DB في IDA. 

يحمل تحميل Buddy Buddy قوائم بوظائف C/C ++ ، ورموز opcodes و APIs Windows (المحددة في دليل Beaturable_Function_Lists) والتي تكون معرضة بشكل شائع أو يمكن أن تسهل ظروف الفائض العازلة. يتم الإبلاغ عن جميع الحالات التي تم العثور عليها مرة أخرى أثناء التحليل التلقائي ويمكن أن تساعد أثناء البحث عن مسارات الكود المحتملة التي يسيطر عليها المستخدم للوصول إلى وظائف حساسة.

تحاول الأداة تلقائيًا العثور على مسارات الأجهزة المسجلة السائقين ( DeviceName ) ، إذا لم يكن من الممكن العثور على مسارات من خلال النظر إلى سلاسل Unicode داخل الثنائي ، يمكن للمحلل محاولة استخدام خيط Madiant يدويًا في محاولة للعثور على مسارات محظورة.

أثناء التحليل التلقائي ، تقوم الأداة أيضًا بإلقاء Pooltags التي يستخدمها الثنائي بتنسيق يعمل مع pooltags.txt . يمكن بعد ذلك نسخ الإخراج في نهاية الملف وتم التقاطها لاحقًا بواسطة Windbg.
DriverName.sys-2021-12-10-TIME_STAMP-pooltags.txt ، الذي يحتوي على جميع مجموعات البلياردو التي تم إلقاؤها ، تحت دليل DB الخاص بـ IDA. 
0x10000 تلقائيًا ، وبالتالي لمنع عدد كبير من الإيجابيات الخاطئة. العدد رقم 15DispatchDeviceControl فقط لسائقي X64find_opcode_data صديق برنامج التشغيل للعثور على الرموز المفردات في أقسام البيانات. سيقوم تحويله إلى True بطباعة شيء ما على هذا الخط: Found jnz short loc_15862 in sub_15820 at 0x00015852 عادةً ، عند الانتقال إلى العنوان الموضح وإعادة تحديد التحديد حيث سيعيد رمز OPCODE الذي تم تفتيشه إلى الوراء. احترس : إنه عرضة للإيجابيات الخاطئة!