-
-
[求助]这段代码有什么问题吗?
-
发表于:
2008-12-28 21:18
4232
-
NTSTATUS DriverEntry (IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)
{
UNICODE_STRING uni;
PULONG start;
RtlInitUnicodeString(&uni, L"ZwOpenProcess");
start = (PULONG)MmGetSystemRoutineAddress(&uni);
KdPrint(("start : %08X\n", start));
DriverObject->DriverUnload = Unload;
while(1)
{
start++;
__try
{
ProbeForRead(start, 1, 4);
if (*(PCHAR)start == 0xe8)
{
KdPrint(("Found : %08X\n", start));
break;
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
KdPrint(("got an exception : %08x\n", GetExceptionCode()));
return GetExceptionCode();
}
}
return STATUS_SUCCESS;
}
代码的作用是找NtOpenProcess函数代码中第一次出现0xe8的位置
为什么每次都抛出异常80000002 (STATUS_DATATYPE_MISALIGNMENT)
修改ProbeForRead一句后 直接就崩溃了 。。
还望高手解答
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课