Kernel Detective new security & analysis tool

الناقل : elmasry | الكاتب الأصلى : GamingMasteR | المصدر : www.arabteam2000-forum.com

السلام عليكم ورحمة الله وبركاته .

تم بحمد الله اكمال النسخة الاولى من برنامج Kernel Detective .

البرنامج يتعامل بشكل مباشر مع النظام لاكتشاف معظم التغييرات التي حدثت في الـkernel space مع امكانية استرجاع البيانات الاصلية او التعديل اليدوي عليها .

ميزات البرنامج :-

Processes
جرد للعمليات التي تعمل مع اظهار العناصر المهمة لكل عملية مثل الـProcess Id و الـParent pid و الـImageBase و الـEntryPoint و الـVirtualSize و عنوان الـPEB وعنوان الـEPROCESS , أيضا يمكنه اظهار العمليات المختفية بأغلب الطرق المشهورة مثل hxdef و futo و phide_ex .

Posted Image

Terminate from user-mode : هذه الخاصية لمحاولة اغلاق البرامج مع مستوى المستخدم user-mode وهي غير فعالة مع البرامج التي تحمي نفسها .
Terminate from kernel-mode : هذه الخاصية لمحاولة اخلاق البرامج من مستوى النظام kernel-mode وهي فعالة مع اغلب البرامج حتى التي تحمي نفسها مثل KAV-RkU بينما تفشل في اغلاق برامج اخرى مثل IceSword .
Force-Terminate : يتم استخدام طرق خاصة لاغلاق البرنامج بالقوة .
Debug : هذا الامر لتشغيل المنقح debugger وربطه مع العملية المختارة .
Enum Modules : هذا الامر لجرد المكتبات Dlls التي تم تحميلها من قبل المعلية المختارة .
Read Memory : هذا الامر يتيج لك عمل disassemble لذاكرة البرنامج لرؤية اكواد الاسمبلي الخاصة به + امكانية التعديل على الكود .
Dump to file : لعمل dump لذاكرة البرنامج .


Dynamic-link Libraries
جرد لمفات الـDll المحملة مع عملية معينة + عرض معلومات الـImageBase والـEntryPoint والـSize والـPath .

Posted Image

Inject Library : لحقن ملف dll الى العملية المختارة .
Unload Library : لتحرير ملف الـdll المختار مع العملية .
Dump to file : لعمل dump لذاكرة الـdll الى ملف خارجي.
Goto EntryPoint : لعمل disassemble للـEntryPoint الخاص بالـdll .


Kernel-mode Drivers
لجرد الدرايفرز التي تم تحميلها الى النظام + عرض المعلومات الاساسية عنها .. أيضا يمكن اكتشاف اغلب الدرايفرات المخفية .

Posted Image

Dump to file : لعمل dump للاجزاء المتاحة من الدرايفر .. اغلب الدرايفرز يكون بها اقسام discardable والتي يتم تحرير ذاكرتها بعد تحميل الدرايفر وتنفيذ دالة الـDriverEntry .
Goto EntryPoint : لعمل disassemble للـEntryPoint اذا كان مازال متاحاً .


System Service Descriptor Table
لمشاهدة جدول خدمات النظام ومعرفة أي خدمة تم اقتناصها ومكانية استعادة عنوان الخدمة الأصلي او تعديله يدوياً .

Posted Image

Restore Selected : لاستعادة عنوان الخدمة المختارة .
Restore All : لاستعادة عناوين جميع الخدمات .
Change Selected : تتيح لك تغيير عنوان الخدمة المختارة يدوياً .
Goto Current/Real Address : لعمل disassemble لعنوان الخدمة الحالي او الحقيقي (ان كانت مقتنصة) .


System Service Descriptor Table Shadow
لمشاهدة جدول خدمات النظام الخاص بالـGUI ومعرفة أي خدمة تم اقتناصها ومكانية استعادة عنوان الخدمة الأصلي او تعديله يدوياً .

يمكن اجراء نفس العمليات التي على SSDT على هذا الجدول.


Interrupts Descriptor Table
لمشاهدة جميع المقاطعات لكل بروسيسور على حدة مع اظهار المعلومات المهمة لكل مقاطعة + امكانية معرفة واستعادة الـhandler الحقيقي لكل مقاطعة .

Resized to 81% (was 800 x 577) - Click image to enlargePosted Image


Change offset : لتغيير عنوان الـhandler الخاص بالمقاطعة المختارة .
Change Selector : لتغيير قيمة الـSelector الخاص بالمقاطعة المختارة .
Restore : لاستعادة قيمة عنوان الـhandler الاصلي للمقاطعة المختارة .
Goto Address : لعمل disassemble لاجراء الـhandler الخاص بالمقاطعة .

Kernel-mode hooks
هذه احد اهم خواص البرنامج وهي فحص المكونات الهامة للنظام مثل الكرنل نفسه (ntoskrnl.exe) و الـFile System Drivers و الـnetworking drivers , واكتشاف التغييرات التي حدثت على كود الـdriver سواء عن طريق inline hooks او EAT hooks او IAT hooks . في النسخ القامدة من البرنامج سيتم اضافة انواع اخرى من الـhooks ليتم اكتشافها .

Posted Image

Restore Selected : لاسترجاع البايتات الاصلية التي تم تغييرها او استعادة العنوان الاصلي للـEAT/IAT الذي تم تغييره.
Restore All : لاسترجاع البايتات الاصلية لكل التغييرات التي تم اكتشافها.
Goto : للذهاب الى العنوان الذي تم تغيير البايتات فيه وعمل disassemble.


Code Disassembler
للقراءة والكتابة وعمل disassemble لجزء معين من الذاكرة الافتراضية لعملية معينة او حتى لذاكرة النظام kernel-space , يتم الاعتماد على محرك OllyDbg الخاص بعمل disassemble + محاولة جعل مظهره مثل واجهة olly المألوفة , ايضا يتم تحليل الـsymbols .
يتم استخدام اجراءات خاصة للقراءة والكتابة بدون الاعتماد اطلاقاً على دوال API مثل Read/WriteProcessMemory , وذلك لتجاوز بعض الحمايات التي تقوم باقتناص دالتي NtReadProcessMemory او NtWriteProcessMemory , أيضا يتم تجاوز الـhook على دالتي KeStackAttachProcess و KeAttachProcess من مستوى النظام والتي تمنع الحاق الـthread بعملية معينة لغرض القراءة من ذاكرتها الافتراضية .

Posted Image

Copy Address/Hex/Command : لنسخ العنوان المختار او قيم الهكس او تعليمة الاسمبلي .
Binary -> Edit : للسماح لك بتعديل الذاكرة يدويا عن طريق الهكس.
Binary -> Fill with Zeros/Nops : لاستبدال الامر المختار بأصفار او nops .
Binary -> Copy Masm/C/Pascal : لنسخ قيم الهكس الخاصة بالتعليمة الى احدى صيغ الـbyte array في مترجم masm او السي او الباسكال.
Asseble + Write : لعمل assemble للتعليمة المختارة الحالية .
Follow intermediate Constant : اذا كان هناك const او intermediate خاص بالتعليمة يتم قراءته والذهاب اليه مباشرة - مثل عناوين القفزات والنداءات.
Goto : لعمل disasm لعنوان اخر.


Debug View
لاقتناص رسائل الـdebug التي يتم ارسالها الى الـkernel-debugger .. هذه الرسائل معروفة ومهمة لأي كاتب درايفر , هذه الخاصية معطلة افتراضياً لانها تسبب احيانا بعض المشاكل , لتشغيلها قم بتشغيل البرنامج مع الباراميتر debugv .


أي استفسار او خطأ بالرنامج او اضافة مفيدة يرجى ابلاغي بها هنا او في رسالة خاصة .
البرنامج مازال في اول اصدار له ولم يتم تجربته كثيرا لذلك يحتمل وجود اخطاء كثيرة به .

للتحميل :
Kernel Detective v1.4.1




GamingMaster -AT4RE