السلام عليكم ورحمة الله وبركاته . تم بحمد الله اكمال النسخة الاولى من برنامج Kernel Detective . البرنامج يتعامل بشكل مباشر مع النظام لاكتشاف معظم التغييرات التي حدثت في الـkernel space مع امكانية استرجاع البيانات الاصلية او التعديل اليدوي عليها . ميزات البرنامج :- Processes جرد للعمليات التي تعمل مع اظهار العناصر المهمة لكل عملية مثل الـProcess Id و الـParent pid و الـImageBase و الـEntryPoint و الـVirtualSize و عنوان الـPEB وعنوان الـEPROCESS , أيضا يمكنه اظهار العمليات المختفية بأغلب الطرق المشهورة مثل hxdef و futo و phide_ex . 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 . Inject Library : لحقن ملف dll الى العملية المختارة . Unload Library : لتحرير ملف الـdll المختار مع العملية . Dump to file : لعمل dump لذاكرة الـdll الى ملف خارجي. Goto EntryPoint : لعمل disassemble للـEntryPoint الخاص بالـdll . Kernel-mode Drivers لجرد الدرايفرز التي تم تحميلها الى النظام + عرض المعلومات الاساسية عنها .. أيضا يمكن اكتشاف اغلب الدرايفرات المخفية . Dump to file : لعمل dump للاجزاء المتاحة من الدرايفر .. اغلب الدرايفرز يكون بها اقسام discardable والتي يتم تحرير ذاكرتها بعد تحميل الدرايفر وتنفيذ دالة الـDriverEntry . Goto EntryPoint : لعمل disassemble للـEntryPoint اذا كان مازال متاحاً . System Service Descriptor Table لمشاهدة جدول خدمات النظام ومعرفة أي خدمة تم اقتناصها ومكانية استعادة عنوان الخدمة الأصلي او تعديله يدوياً . 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 enlarge 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 ليتم اكتشافها . 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 بعملية معينة لغرض القراءة من ذاكرتها الافتراضية . 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