好友
阅读权限10
听众
最后登录1970-1-1
|
Robot
发表于 2013-2-22 11:50
IDA,">求高手给个思路 我写了个简单的键盘过滤驱动 Hookl了IRP_MJ_READ 请求 当卸载的时候请问下如何才能卸载 谢谢
下面是主要实现Hook 的代码
PDRIVER_DISPATCH OldDispatchRead;//原IRP_MJ_READ函数的入口地址 全局变量
//在 DriverEntry 里
PDRIVER_OBJECT KbdDriverObject = NULL;
UNICODE_STRING KbdName;
NTSTATUS status;
//init string
RtlInitUnicodeString(&KbdName,KBD_DRIVER_NAME);
status = ObReferenceObjectByName(
&KbdName,
OBJ_CASE_INSENSITIVE, //不区分大小写
NULL,
0,
*IoDriverObjectType,
KernelMode,
NULL,
&KbdDriverObject
);
if(!NT_SUCCESS(status)){
DbgPrint("cannot get the kbd object/n");
return STATUS_UNSUCCESSFUL;
}
DbgPrint("Hook 开始");
//保留原分发函数的入口地址
OldDispatchRead = KbdDriverObject->MajorFunction[IRP_MJ_READ];
//绑定新的分发函数
InterlockedExchangePointer(&KbdDriverObject->MajorFunction[IRP_MJ_READ],newDisperseFun);
//解除引用
ObDereferenceObject(KbdDriverObject);
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|