delphi4arab منتديات دلفي للعرب
KmdKit4D - Kernel Mode Driver Kit for Delphi - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي والتعامل مع النظام و الذاكرة (https://delphi4arab.net/forum/forumdisplay.php?fid=20)
+--- الموضوع : KmdKit4D - Kernel Mode Driver Kit for Delphi (/showthread.php?tid=572)



KmdKit4D - Kernel Mode Driver Kit for Delphi - محمد عبد العزيز - 13-02-2009


KmdKit4D اختصارا لKernel Mode Driver Kit for Delphi
تجميعة خاصة لبرمجة الدريفرات بدلفي



KmdKit4D - Kernel Mode Driver Kit for Delphi - mohfa - 13-02-2009

يامحمد , كانت عندي تحب الصراحة لعدم فهمي للغة الصينية لم استطيع إستعماله فهذه درايفر وليس برنامج يعني الواحد يجب ان يعرف ماذا يفعل . حاولن الإتصال بصاحب الKit لكي يقوم MultiLangue للبرنامج لكن لاحياة لمن تنادي .

إن تكرم احد الإخوة وترجم لنا من الصينية الى الانجليزية على الاقل .

محمد


KmdKit4D - Kernel Mode Driver Kit for Delphi - MjIrIm - 13-02-2009

في البداية السلام عليكم


مشكور جدا أخي العزيزDeltaAziz Cool
مشاركة جد قيمة

بالنسبة للملفات فهي مدعمة بتعاليق خفيفة بالانجليزية
يمكن ان تفي بالغرض مبدئيا أخي العزيز mohfa

و السلام.



KmdKit4D - Kernel Mode Driver Kit for Delphi - mohfa - 14-02-2009

شكرا اخي MjIrIm اولا انا لاارى اي تلميحات , وحتى إن كانت هناك تلميحات ففي هكذا برمجة لانعتمد على التلميحات .


KmdKit4D - Kernel Mode Driver Kit for Delphi - محمد عبد العزيز - 15-02-2009


اخي محمد لو انتظرت ان يترجم لك لن تتعلم شيئ
تابع معي
بعد التحميل فك الضغط في القرص C: (مثلا) ليكون C:\KmdKit4D
ثم حمل ايضا الملف BIN وفك ضغطه في المجلد BIN الموجود داخل المجلد KmdKit4D
اخي GamingMaster بارك الله فيك ووفقه في دراسه يقوم بكتابة سلسلة دروس برمجة KMD
الدرس الاول تمهيدي : Kernel-mode programming #1
http://www.at4re.com/f/showthread.php?tid=5376
الدرس الثاني اول مثال تطبيقي : Kernel-mode programming #2
http://www.at4re.com/f/showthread.php?tid=5429
نفس المثال يمكن عمله بدلفي هكذا
الكود الخاص بالـDriverEntry سيكون بالشكل التالي :
PHP كود :
function _DriverEntry(DriverObject:PDriverObject;RegistryPath:PUnicodeString):NTSTATUS; stdcall;
begin
  DbgPrint
('Test Driver :: DriverEntry');
  
DriverObject^.DriverUnload :=@ DriverUnload;
  
Result := STATUS_SUCCESS;
end; 
دالة Unload تكون بالشكل التالي :
PHP كود :
procedure DriverUnload(pDriverObject: PDriverObject); stdcall;
begin
  DbgPrint
('Test Driver :: Unload');
end; 

بما اننا لن نستخدم DDK ونبرمج بدلفي ونستخدم KmdKit4D ملف makefile سيكون من الشكل
PHP كود :
NAME=driver
DCC
=dcc32
INCLUDE=C:\KmdKit4D\include
LIB_PATH
=C:\KmdKit4D\lib
DCCFLAGS
=-U$(INCLUDE) -B -CG -JP -$A-,C-,D-,G-,H-,I-,L-,P-,V-,W+,Y- -O+
LIBS=ntoskrnl.lib hal.lib win32k.lib ntdll.lib ntutils.lib
LINKFLAGS
=/NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /LIBPATH:$(LIB_PATH) /FORCE:UNRESOLVED /FORCE:MULTIPLE /ENTRY:DriverEntry

all 
: $(NAME).sys

$(NAME).sys : $(NAME).obj    
    rmcoff 
$(NAME).obj
    link 
$(LINKFLAGS) $(LIBS) /out:$(NAME).sys $(NAME).obj
     
$(NAME).obj : $(NAME).pas
    
$(DCC) $(DCCFLAGS) $(NAME).pas

clean 
:    
    
del *.obj
    del 
*.dcu
    del 
*.sys 
قم بفتح سطر الاوامر وادخل مجلد المثال، في حالتي C:\driver
ونفذ Make
[صورة: KmdKit4D.jpg]
ام لم ترتكب اي خطا فمبروك driver.sys
ملاحظة: يجب اضافة مجلد KmdKit4D لPath
يمكن ذلك بكتابة التالي قبل تنفيذ Make
كود :
set path=C:\KmdKit4D\Bin;%path%
الان تجربته
حمل المرفقات
فك الضغك
نفذ Dbgview.exe
نفذ OSRLOADER.exe
بحيث تظهر نافذتي البرنامجين واحدة بجنب الثانية
في OSRLOADER اضغط الزر Browse ثم اختر ملنا المبرمج driver.sys ثم
Register Service
Start Service
لاحظ الرسائل وخاصة DbgView كل شيئ تمام ، نوقف البرنامج
Stop Service
Unregister Service
هذا كل شيئ والسلام عليكم