تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مدخل - Windows Kernel debugging with WinDbg
#1
تعتمد معظم انظمة التشغيل على نمطين لتشغيل  البرمجيات  Software
اليوزر مود والكيرنل مود
طبعا وجود وضعين لتشغيل السوفتوير يزيد من حماية كيرنل النظام لانه كمانعرف حدوث خطأ في اي برامج النظام التي تعمل من قبل ال System  سيسبب انهيار النظام
بامكانك ان تجرب وتوقف برنامج (lssase.exe    (Local Security Authority Subsystem Service برنامج الحماية وهو من مايكروسوفت عن العمل ثم سيقوم الحاسوب باعادة التشغيل تلقائيا (في ويندوز 10 تظهر شاشة تطلب ان تحفظ عملك لانه سيحدث auto restart )

 



توزع الداكرة
الان لنقم بتحميل اي برنامج يتخد وضع اليوزرمود في اي منقح وليكن Olly وليكن هدا البرنامج Calc.exe الة الحاسبة الويندوز
بعد تحميله اضغط ALT+E لعرض جميع المكتبات التي يستخدمها البرنامج
سنلاحظ انه يستخدم الكثير من المكتبات الموجودة بالمسار C://Windows/System32
انظر للعناوين


[صورة مرفقة: VFdq5ha.png]

ستلاحظ انهم كلهم يتحملون بعناوين اصغر من  0x80000000
كلهم بما فيهم kernel32.dll,user32.dll,shell32.dll,ntdll.dll
هدا لان الداكرة مقسمة بين اليوزر لاند و الكيرنل لاند
اليوزر لاند يشغل من العنوان x00000000  الى 0x7FFFFFFF  والكيرنل لاند تشغل من 0x80000000 الى 0xFFFFFFFF
فمثلا ادا لدبنا حاسوب به داكرة 4GB فان 2 سيدهب لليوزر لاند  والاخر سيدهب  الكيرنل لاند


______

____________________________________________________

Kernel debugging with WindDbg
______
WinDbg هو اصدار اخر من ال command line debugger (cdb.exe)  مدعم بواجهة رسومية GUI  متعدد المهام مقدم من مايكروسوفت يعتبر   Kernel mode deubgger ,user mode debugger  له قدرات عالية بامكانك عبره اصلاح اعطال النظام و
 تعمل Attach لبرامج الكيرنل و debug  لكيرنل النظام سواء Loacal
 او لنظام تشغله بواسطة VMware او لجهاز متصل عبر شبكة او USB
 ايضا بامكانك عبره ان تعمل debug للملفات التنفيدية[صورة مرفقة: hSY35Du.png]
 


[صورة مرفقة: jyK97h0.png]



 بامكانك تحميله من هنا


لمادا Kernel Debugging ؟
_ من اجل  فهم بنية النظام وكيف يعمل
_لفهم كيف ولمادا تحصل على مثل هده الشاشة

[صورة مرفقة: SA82uNp.png]

_لتحليل الدرايفرز
_لتحليل الروت كيت

 



بالنسبة لانشاء اتصال
_افتح الVMware فم اضغط Edit virtual machine setting > ADD > Serial port > pipe >
ثم اختر اي اسم للبورت بعد \\.pipe\ وليكن test
الان شغله ثم ابحث عن System Config
Boot  > Advenced setting > Check debug box
ثم Apply
Ok
ثم سيطلب منك اعادة التشغيل لاتعد التشغيل قبل ان تدخل الى
WinDbg > File > Kernel Debug > COM
الان اكتب اسم البورت والدي هو \\.\pipe\test
وتحقق من صندوق pipe لاننا سنتصل عبره reconnect ادا خفق الاتصال

Type :COM
port :\\.\pipe\test
معدل الاشارة بالثانية 115200 Baud Rate
اما عن حقل Resets فهو المدة اللازمة التي يجب الانتظار حتى يعيد الاتصال
هنا 0 يعني لانهائي

[صورة مرفقة: rD59NPo.png]


[صورة مرفقة: k4HkEDa.png][صورة مرفقة: tbJU8f2.png][صورة مرفقة: vazhpzB.png][صورة مرفقة: 8LQPoHF.png]

ادا ظهر لك هدا فكل شيئ على ما يرام عدا الرموز التصحيح Symbols

[صورة مرفقة: BawykAe.png]


رموز التصحيح تساعدك على فهم الكود اكثر فهي تشير لك للدوال 
فمثلا بدون رموز تصحيحية
[صورة مرفقة: y3IffhO.png]

مع رموز تصحيحية

[صورة مرفقة: 0D9Sx0J.png]

من اجل رموز التصحيح Symbols ادخل
File > Symbol File Path
ادخل في الحقل
srv*C:\symcache*http://msdl.microsoft.com/download/symbols
 
[صورة مرفقة: Rdji4ab.png]
طبعا  هنا بامكانك ان تحدده انت كما تريد المسار
ثم اعمل Break من debugاو CTRL+Break وادخل reload. او بامكانك ان تعيد الاتصال ليتحمل ال Symbols من سيرفر مايكروسوفت لاول مرة
ثم تتصل ب Virtual machine
[صورة مرفقة: rElbYNt.png]

أعضاء أعجبوا بهذه المشاركة : darkCOD3R , Cyperior , Cyros , fantazma , the9am3 , mohamad , TeRcO , الباحث , MountLegacy
#2
حين ادخل system configuration لا يظهر لان نظامي عربي
هل في طريقة اخرى لفتح النافذة تلك
وقمت بتجربة  عمل attach لبرنامج lssase يقول لي  access deneid
( وَفِىٓ أَنفُسِكُمْ ۚ أَفَلَا تُبْصِرُونَ )
أعضاء أعجبوا بهذه المشاركة :
#3
من الRun
(Windows + R)  ادخل msconfig.exe

اي برنامج بيحتاج الوصول للكيرنل او يعدل على Kernel memory او اي شيئ من هدا يحتاج فتح ك Admin

ارجو من المشرفين حدف هدا الموضوع او اخر جملة " كان هدا الموصوع مقدمة لمواضيع عن Windows kernel debugging with WinDbg والتي ساكتبها لاحقا انشاء الله ان تيسرت الظروف. "
أعضاء أعجبوا بهذه المشاركة :
#4
ماشاء الله شرح ممتاز  ، من الصدف الجميلة اني من قليل بس كنت ادرس باحد المواد عن ال dispatcher والتحكم في في الوصول للكينرل واليوزر مود ، 
​​​​​​بس سؤال ، ايش اللي يمنع برامج التنقيح من الحصول على صلاحية الوصول للكيرنل مثل windbg ??
أعضاء أعجبوا بهذه المشاركة : SeGNMeNT
#5
نعم   dispatch routine تستخدم لمعالجة طلبات IRP   في driver
يمكن استخدام DeviceIoControl API لارسال مثلا   Shellcode ودلك عبر معامل handle  من برنامج عادي  لدرايفر ويمكن حدوث خلل بعمله كعملStackOverflowاو ايا يكن
لم افهم السؤال جيدا
WinDbg يمكن ان ينقح عبره كبرنل النظام و اشياء ك Kernel drivers , Windows Kernel API...
أعضاء أعجبوا بهذه المشاركة : mohamad


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم