|
楼主 |
发表于 2010-8-28 23:55:13
|
显示全部楼层
合在一起,就出错,为什么?
希望高人快快出现~~~~~~
天灵灵,地灵灵~~~~~
- #include <ntddk.h>
- #include "ntimage.h"
- #include "KernelVoid.h"
- VOID Unload(IN PDRIVER_OBJECT DriverObject)
- {
- }
- NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
- { extern long KeServiceDescriptorTable;
- ULONG SSDT_NtOpenProcess_Addr;
- ULONG XXXX,yyyy,SSDT_NtOpenProcess_Cur_Addr;
- XXXX=KvGetSSDTVoid("NtTerminateProcess");
- DbgPrint("NtTerminateProcess的原始地址是0x%x.",KvGetSSDTVoid("NtTerminateProcess"));
- _asm
- {
- push ebx
- push eax
- mov ebx,KeServiceDescriptorTable
- mov ebx,[ebx]
- mov eax,0x7a
- shl eax,2
- add ebx,eax
- mov ebx,[ebx]
- mov SSDT_NtOpenProcess_Addr,ebx
- pop eax
- pop ebx
- }
- KdPrint(("SSDT的当前地址=%x",SSDT_NtOpenProcess_Addr));
- DriverObject->DriverUnload = Unload;
- return STATUS_SUCCESS;
- }
复制代码 |
|