المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : KmdKit4D - Kernel Mode Driver Kit for Delphi


B.M.AbdelAziZ
13-02-2009, 06:46 PM
KmdKit4D اختصارا لKernel Mode Driver Kit for Delphi
تجميعة خاصة لبرمجة الدريفرات بدلفي

mohfa
13-02-2009, 07:17 PM
يامحمد , كانت عندي تحب الصراحة لعدم فهمي للغة الصينية لم استطيع إستعماله فهذه درايفر وليس برنامج يعني الواحد يجب ان يعرف ماذا يفعل . حاولن الإتصال بصاحب الKit لكي يقوم MultiLangue للبرنامج لكن لاحياة لمن تنادي .

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

محمد

MjIrIm
13-02-2009, 08:25 PM
في البداية السلام عليكم


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

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

و السلام.

mohfa
14-02-2009, 06:01 PM
شكرا اخي MjIrIm اولا انا لاارى اي تلميحات , وحتى إن كانت هناك تلميحات ففي هكذا برمجة لانعتمد على التلميحات .

B.M.AbdelAziZ
15-02-2009, 09:43 AM
اخي محمد لو انتظرت ان يترجم لك لن تتعلم شيئ
تابع معي
بعد التحميل فك الضغط في القرص C: (مثلا) ليكون C:\KmdKit4D
ثم حمل ايضا الملف BIN وفك ضغطه في المجلد BIN الموجود داخل المجلد KmdKit4D
اخي GamingMaster بارك الله فيك ووفقه في دراسه يقوم بكتابة سلسلة دروس برمجة KMD
الدرس الاول تمهيدي : Kernel-mode programming #1
http://www.at4re.com/f/showthread.php?t=5376
الدرس الثاني اول مثال تطبيقي : Kernel-mode programming #2
http://www.at4re.com/f/showthread.php?t=5429
نفس المثال يمكن عمله بدلفي هكذا
الكود الخاص بالـDriverEntry سيكون بالشكل التالي :

function _DriverEntry(DriverObject:PDriverObject;RegistryPa th:PUnicodeString):NTSTATUS; stdcall;
begin
DbgPrint('Test Driver :: DriverEntry');
DriverObject^.DriverUnload :=@ DriverUnload;
Result := STATUS_SUCCESS;
end;

دالة Unload تكون بالشكل التالي :

procedure DriverUnload(pDriverObject: PDriverObject); stdcall;
begin
DbgPrint('Test Driver :: Unload');
end;


بما اننا لن نستخدم DDK ونبرمج بدلفي ونستخدم KmdKit4D ملف makefile سيكون من الشكل

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
http://www.delphi4arab.com/images/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
هذا كل شيئ والسلام عليكم