Kernel mode - برمجة Driver Filter
#13
السلام عليكم

1- أظن أن الأستاذ STRELiTZIA يريد أن نعمل برنامج يستقبل إستدعاءات النظام
لهده الدوال + تغير مسار الإستدعاء الأصلي الى الدوال الجديدة (NewZwXXXHook) .
يعني Hook & Filter (حسب معلوماتي) .

2- أكملت الواجهة + الأن **** إستقبال معلومات من الـ Kernel (مبدئيا StringBuffer )
خطوة خطوة .

PHP كود :
function DispatchRead(p_DeviceObject: PDEVICE_OBJECT; p_Irp: PIRP):
   
NTSTATUS; stdcall;
Var
  
CurrentIrpStack:PIO_STACK_LOCATION;
  
pDevExt:PDEVICE_EXTENSION;
  
userBuffer:PVOID;
  
xferSize:ULONG;
begin
 DbgPrint
('DispatchRead!');

 
// The stack location contains the user buffer info
 
CurrentIrpStack:= IoGetCurrentIrpStackLocation(p_Irp);
 
// Dig out the Device Extension from the Device object
 
pDevExt:= p_DeviceObject.DeviceExtension;


 
// Determine the length of the request
 
xferSize:=CurrentIrpStack.Parameters.Read.Length;
 
userBuffer:=p_Irp.AssociatedIrp.SystemBuffer;

 
// Don't transfer more than the user's request
 // ...

 // Now copy the pool buffer into user space
 
RtlCopyMemory(userBuffer,pDevExt.deviceBuffer,xferSize);

 
// Free pool buffer
    
ExFreePool(pDevExt.deviceBuffer);
    
pDevExt.deviceBuffer := Nil;
    
pDevExt.deviceBufferSize := 0;
  
 
// Now complete the IRP
 
p_Irp^.IoStatus.Status := STATUS_SUCCESS;
 
p_Irp^.IoStatus.Information := xferSize;
 
IofCompleteRequest(p_Irp, IO_NO_INCREMENT);
 
result := STATUS_SUCCESS;
end; 

هذا إجتهادي إن كان خطا ****ا التصحيح .... لكن المشكلة هنا هي الدالة RtlCopyMemory
أعدت تعريفها من الـ ntoskrnl لكن لم ينجح الإستدعاء هكذا :

PHP كود :
const
  
NtKernel='ntoskrnl.exe';

procedure RtlCopyMemory(Destination : PVOID ;Source: PVOID;Length: SIZE_T );StdCall;
-
implementation
-
procedure RtlCopyMemory; external NtKernel name '_RtlCopyMemory'; 

هل من الممكن أن يكون لنسخة النظام تأثير (تبديل الدالة لإسم أخر) أم أخطأت في مصدر التصدير ؟؟
I'M Fly Like A G6

الرد


الردود في هذا الموضوع
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 15-01-2010, 10:12 AM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 21-01-2010, 09:18 AM
Kernel mode - برمجة Driver Filter - بواسطة mohfa - 21-01-2010, 11:13 AM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 21-01-2010, 11:44 AM
Kernel mode - برمجة Driver Filter - بواسطة mohfa - 21-01-2010, 12:47 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 23-01-2010, 11:29 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 25-01-2010, 12:14 PM
Kernel mode - برمجة Driver Filter - بواسطة GamingMasteR - 27-01-2010, 03:53 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 27-01-2010, 06:23 PM
Kernel mode - برمجة Driver Filter - بواسطة GamingMasteR - 28-01-2010, 01:09 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 28-01-2010, 02:28 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 28-01-2010, 06:55 PM
Kernel mode - برمجة Driver Filter - بواسطة o15s19 - 29-01-2010, 10:52 AM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 30-01-2010, 08:56 AM
Kernel mode - برمجة Driver Filter - بواسطة Ahmed18 - 01-02-2010, 12:55 AM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 01-02-2010, 01:41 PM
Kernel mode - برمجة Driver Filter - بواسطة GamingMasteR - 01-02-2010, 02:11 PM
Kernel mode - برمجة Driver Filter - بواسطة GamingMasteR - 01-02-2010, 08:09 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 20-02-2010, 10:12 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 21-02-2010, 10:31 AM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 21-02-2010, 11:11 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 22-02-2010, 01:29 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 22-02-2010, 03:35 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 22-02-2010, 04:25 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 22-02-2010, 04:55 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 22-02-2010, 05:09 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 22-02-2010, 05:36 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 22-02-2010, 05:44 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 22-02-2010, 05:49 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 22-02-2010, 06:00 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 22-02-2010, 06:39 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 25-01-2010, 12:33 PM
Kernel mode - برمجة Driver Filter - بواسطة STRELiTZIA - 25-01-2010, 12:45 PM
Kernel mode - برمجة Driver Filter - بواسطة TF6M - 29-01-2010, 12:07 PM

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


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