05-09-2020, 02:12 PM
(آخر تعديل لهذه المشاركة : 09-09-2020, 05:21 PM بواسطة the9am3.
تعديل السبب: بطلب من صاحب الموضوع حذف نص..
)
تعتمد معظم انظمة التشغيل على نمطين لتشغيل البرمجيات Software
اليوزر مود والكيرنل مود
طبعا وجود وضعين لتشغيل السوفتوير يزيد من حماية كيرنل النظام لانه كمانعرف حدوث خطأ في اي برامج النظام التي تعمل من قبل ال System سيسبب انهيار النظام
بامكانك ان تجرب وتوقف برنامج (lssase.exe (Local Security Authority Subsystem Service برنامج الحماية وهو من مايكروسوفت عن العمل ثم سيقوم الحاسوب باعادة التشغيل تلقائيا (في ويندوز 10 تظهر شاشة تطلب ان تحفظ عملك لانه سيحدث auto restart )
توزع الداكرة
الان لنقم بتحميل اي برنامج يتخد وضع اليوزرمود في اي منقح وليكن Olly وليكن هدا البرنامج Calc.exe الة الحاسبة الويندوز
بعد تحميله اضغط ALT+E لعرض جميع المكتبات التي يستخدمها البرنامج
سنلاحظ انه يستخدم الكثير من المكتبات الموجودة بالمسار C://Windows/System32
انظر للعناوين
![[صورة مرفقة: VFdq5ha.png]](https://i.imgur.com/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]](https://i.imgur.com/hSY35Du.png)
![[صورة مرفقة: jyK97h0.png]](https://i.imgur.com/jyK97h0.png)
بامكانك تحميله من هنا
لمادا Kernel Debugging ؟
_ من اجل فهم بنية النظام وكيف يعمل
_لفهم كيف ولمادا تحصل على مثل هده الشاشة
![[صورة مرفقة: SA82uNp.png]](https://i.imgur.com/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]](https://i.imgur.com/rD59NPo.png)
![[صورة مرفقة: k4HkEDa.png]](https://i.imgur.com/k4HkEDa.png)
![[صورة مرفقة: tbJU8f2.png]](https://i.imgur.com/tbJU8f2.png)
![[صورة مرفقة: vazhpzB.png]](https://i.imgur.com/vazhpzB.png)
![[صورة مرفقة: 8LQPoHF.png]](https://i.imgur.com/8LQPoHF.png)
ادا ظهر لك هدا فكل شيئ على ما يرام عدا الرموز التصحيح Symbols
![[صورة مرفقة: BawykAe.png]](https://i.imgur.com/BawykAe.png)
رموز التصحيح تساعدك على فهم الكود اكثر فهي تشير لك للدوال
فمثلا بدون رموز تصحيحية
![[صورة مرفقة: y3IffhO.png]](https://i.imgur.com/y3IffhO.png)
مع رموز تصحيحية
![[صورة مرفقة: 0D9Sx0J.png]](https://i.imgur.com/0D9Sx0J.png)
من اجل رموز التصحيح Symbols ادخل
File > Symbol File Path
ادخل في الحقل
![[صورة مرفقة: Rdji4ab.png]](https://i.imgur.com/Rdji4ab.png)
طبعا هنا بامكانك ان تحدده انت كما تريد المسار
ثم اعمل Break من debugاو CTRL+Break وادخل reload. او بامكانك ان تعيد الاتصال ليتحمل ال Symbols من سيرفر مايكروسوفت لاول مرة
ثم تتصل ب Virtual machine
![[صورة مرفقة: rElbYNt.png]](https://i.imgur.com/rElbYNt.png)
اليوزر مود والكيرنل مود
طبعا وجود وضعين لتشغيل السوفتوير يزيد من حماية كيرنل النظام لانه كمانعرف حدوث خطأ في اي برامج النظام التي تعمل من قبل ال System سيسبب انهيار النظام
بامكانك ان تجرب وتوقف برنامج (lssase.exe (Local Security Authority Subsystem Service برنامج الحماية وهو من مايكروسوفت عن العمل ثم سيقوم الحاسوب باعادة التشغيل تلقائيا (في ويندوز 10 تظهر شاشة تطلب ان تحفظ عملك لانه سيحدث auto restart )
توزع الداكرة
الان لنقم بتحميل اي برنامج يتخد وضع اليوزرمود في اي منقح وليكن Olly وليكن هدا البرنامج Calc.exe الة الحاسبة الويندوز
بعد تحميله اضغط ALT+E لعرض جميع المكتبات التي يستخدمها البرنامج
سنلاحظ انه يستخدم الكثير من المكتبات الموجودة بالمسار C://Windows/System32
انظر للعناوين
![[صورة مرفقة: VFdq5ha.png]](https://i.imgur.com/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]](https://i.imgur.com/hSY35Du.png)
![[صورة مرفقة: jyK97h0.png]](https://i.imgur.com/jyK97h0.png)
بامكانك تحميله من هنا
لمادا Kernel Debugging ؟
_ من اجل فهم بنية النظام وكيف يعمل
_لفهم كيف ولمادا تحصل على مثل هده الشاشة
![[صورة مرفقة: SA82uNp.png]](https://i.imgur.com/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]](https://i.imgur.com/rD59NPo.png)
![[صورة مرفقة: k4HkEDa.png]](https://i.imgur.com/k4HkEDa.png)
![[صورة مرفقة: tbJU8f2.png]](https://i.imgur.com/tbJU8f2.png)
![[صورة مرفقة: vazhpzB.png]](https://i.imgur.com/vazhpzB.png)
![[صورة مرفقة: 8LQPoHF.png]](https://i.imgur.com/8LQPoHF.png)
ادا ظهر لك هدا فكل شيئ على ما يرام عدا الرموز التصحيح Symbols
![[صورة مرفقة: BawykAe.png]](https://i.imgur.com/BawykAe.png)
رموز التصحيح تساعدك على فهم الكود اكثر فهي تشير لك للدوال
فمثلا بدون رموز تصحيحية
![[صورة مرفقة: y3IffhO.png]](https://i.imgur.com/y3IffhO.png)
مع رموز تصحيحية
![[صورة مرفقة: 0D9Sx0J.png]](https://i.imgur.com/0D9Sx0J.png)
من اجل رموز التصحيح Symbols ادخل
File > Symbol File Path
ادخل في الحقل
srv*C:\symcache*http://msdl.microsoft.com/download/symbols
![[صورة مرفقة: Rdji4ab.png]](https://i.imgur.com/Rdji4ab.png)
طبعا هنا بامكانك ان تحدده انت كما تريد المسار
ثم اعمل Break من debugاو CTRL+Break وادخل reload. او بامكانك ان تعيد الاتصال ليتحمل ال Symbols من سيرفر مايكروسوفت لاول مرة
ثم تتصل ب Virtual machine
![[صورة مرفقة: rElbYNt.png]](https://i.imgur.com/rElbYNt.png)