过滤T雪软件的驱动的一个历程_的驱动

来源:互联网 发布:淘宝为什么要交保证金 编辑:程序博客网 时间:2024/05/16 23:56
#include"ntddk.h"NTSTATUSObReferenceObjectByName(__in PUNICODE_STRING ObjectName,__in ULONG Attributes,__in_opt PACCESS_STATE AccessState,__in_opt ACCESS_MASK DesiredAccess,__in POBJECT_TYPE ObjectType,__in KPROCESSOR_MODE AccessMode,__inout_opt PVOID ParseContext,__out PVOID *Object);extern POBJECT_TYPE *IoDriverObjectType;PDRIVER_DISPATCH m_laolichengdizhi;//历程类型PDRIVER_OBJECT m_dedaokanxuequdongduixiang;//获得的看雪驱动对象VOID xiezai1(_In_ struct _DRIVER_OBJECT *qudongduixiang1){KdPrint(("驱动卸载历程已经执行\n"));if (MmIsAddressValid(m_dedaokanxuequdongduixiang))//判断是否是有效的地址{m_dedaokanxuequdongduixiang->MajorFunction[IRP_MJ_DEVICE_CONTROL] = m_laolichengdizhi;//卸载自己的历程(还原看雪的历程)}}NTSTATUS guolvqudong1(_In_ struct _DEVICE_OBJECT *DeviceObject, _Inout_ struct _IRP *Irp){KdPrint(("我自己写的驱动历程 运行看雪软件的时候 进入到它的sys  我过滤到了 欧耶\n"));return m_laolichengdizhi(DeviceObject, Irp);}NTSTATUS DriverEntry(PDRIVER_OBJECT qudongduixiang1,PUNICODE_STRING zhucebiao1){KdPrint(("通过IO管理器生成驱动对象 进入驱动入口\n"));KdPrint(("注册表路径%wZ\n", zhucebiao1));KdPrint(("驱动对象名%wZ\n", &qudongduixiang1->DriverName));UNICODE_STRING m_kanxuequdongmingzi1;RtlInitUnicodeString(&m_kanxuequdongmingzi1, L"\\Driver\\PCHunter32al");ObReferenceObjectByName(&m_kanxuequdongmingzi1, OBJ_CASE_INSENSITIVE,//不区分大小写 驱动名可以写大写或小写 调用了这个函数打开了一次这个对象 对象管理器的计数加1NULL, //结构比较复杂设计对象特性的东西access state  0, // 访问权限可以写0 写0完全访问不受控制  access mask  *IoDriverObjectType,//对象类型 注意加*号  KernelMode,//内核模式 有三种模式 enum 类型  NULL,                 //不知道 parse context  (PVOID*)&m_dedaokanxuequdongduixiang);//输出对象 我们要得到的驱动对象  )//注意类型转换 这个是重点出错的地方KdPrint(("看雪驱动对象名%wZ\n", &m_dedaokanxuequdongduixiang->DriverName));m_laolichengdizhi = m_dedaokanxuequdongduixiang->MajorFunction[IRP_MJ_DEVICE_CONTROL];//主函数有28 个不同的历程m_dedaokanxuequdongduixiang->MajorFunction[IRP_MJ_DEVICE_CONTROL] = guolvqudong1;//设备控制历程 所有的应用程序和驱动通信 都会用这个ObDereferenceObject(m_dedaokanxuequdongduixiang);//关闭对象管理器的计数 千万别忘记了qudongduixiang1->DriverUnload = xiezai1;return STATUS_SUCCESS;}

0 0
原创粉丝点击