[تمرين] الكل يسأل و الكل يجيب
#14
السلام عليكم و رحمة الله

إقتباس :ممكن أخطأت في المثال :
الدالة تنتظر براميتر من نوع Pointer على المسار الريجستري الذي هو بدوره Unicode.
1- يجب ان يكون الدرايفر مسجل من قبل في النظام لتستطيع الدالة تحميلة و تشغيله.
2- الدالة لا تعمل Unload يجب استدعاء الدالة ZwUnloadDriver لتحرير الدرايفر - تعمل بنفس برامترات دالة التحميل.


PHP كود :
ZwLoadDriver (@obj_Attrib); 
لا...... ادخال البراميتر بهذه الطريقة يعتبر خطأ قاتل : BSOD :bangin: Blue Screen of Death
لا يوجد عندك Object بل مسار ريجيستري unicode فقط.


[صورة: bsod.png]


المرفق يحتوي على مثال تطبيقي للدالة :


طريقة كتابة الدالة، لم اغير هيكل الدالة الأولى لعدم تعقيد الأمور.
PHP كود :
function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
var 
UNICODESTRING: UNICODE_STRING;
begin
 
  DbgPrint
('Test Driver :: Loaded');
  
DriverObject^.DriverUnload := @DriverUnload;
  
RtlInitUnicodeString(UNICODESTRING, '\Registry\Machine\System\CurrentControlSet\Services\ZwDeleteFile');
  
Result := ZwLoadDriver(@UNICODESTRING);
 
  if 
Result = STATUS_SUCCESS then
  begin
    DbgPrint
('Driver loaded sucessfully Result:0x%.8X', Result); // Result to get Error Code
  
end else
  
begin
    DbgPrint
('Fail to load driver Result:0x%.8X', Result); // Result to get Error Code
  
end;
  
Result := STATUS_SUCCESS;
 
end; 

اخي TF6M الطريقة التي كتبت اولا و ظننت انك اخطأت فيها هي الصحيحة :thumbsup:
قارن بين الكود الذي وضعت و ستجد الأخطاء التي يجب اصلاحها...

طريقة استعمال المرفق :
يــــــرجى اتباع المراحل بالترتيب الدقيق.

- تشغيل الأداة Dbgview لاتقاط رسائل الكرنل.
- تشغيل نسخة من اداة KmdManager و اختيار درايفر ZwDeleteFile
- تسجيل فقط الدرايفر ZwDeleteFile.
- تشغيل نسخة ثانية من اداة KmdManager و اختيار الدرايفر ZwLoadDriver.
- تسجيل و تشغيل الدرايفر ZwLoadDriver.

و بالطبع الاطلاع على رسائل الكرنل التي تظهر في DbgView.
يعني اننا سنقوم بتشغيل الدرايفر ZwLoadDriver و منه يتم استدعاء دايفر ثاني مسجل في النظام اسمه ZwDeleteFile و هذا الأخير يحاول حدف ملف تجريبي اسمه test.exe موجود في قرص C.

بالتوفيق ان شاء الله


الملفات المرفقة
.rar   ZwLoadDriver.rar (الحجم : 94.63 ك ب / التحميلات : 103)
الرد


الردود في هذا الموضوع
[تمرين] الكل يسأل و الكل يجيب - بواسطة Goblin - 05-08-2009, 07:48 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة mohfa - 05-08-2009, 08:24 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة mohfa - 06-08-2009, 09:21 AM
[تمرين] الكل يسأل و الكل يجيب - بواسطة mohfa - 06-08-2009, 11:22 AM
[تمرين] الكل يسأل و الكل يجيب - بواسطة mohfa - 06-08-2009, 11:56 AM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 08-08-2009, 12:05 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة STRELiTZIA - 09-08-2009, 10:44 AM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 09-08-2009, 12:19 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 10-08-2009, 12:25 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة o15s19 - 11-08-2009, 08:00 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 03:50 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 04:37 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 05:00 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 05:29 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 05:40 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 06:10 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 27-08-2009, 06:36 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 28-08-2009, 02:57 AM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 28-08-2009, 02:59 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة MjIrIm - 06-09-2009, 10:37 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة MjIrIm - 07-09-2009, 02:01 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 23-12-2009, 03:45 PM
[تمرين] الكل يسأل و الكل يجيب - بواسطة TF6M - 23-12-2009, 04:01 PM

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


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