首页
社区
课程
招聘
未解决 [求助] 求助大佬。实现XT的驱动卸载功能
发表于: 2019-4-22 14:35 1664

未解决 [求助] 求助大佬。实现XT的驱动卸载功能

2019-4-22 14:35
1664
我写了一个A驱动 代码如下:
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{ DbgPrint("--<%wZ>--\n", reg_path);
driver->DriverUnload = DrvUnload;
UNICODE_STRING DeviceName;
RtlInitUnicodeString(&DeviceName, L"\\Device\\testdevice");
IoCreateDevice(driver, 0, &DeviceName, FILE_DEVICE_UNKNOWN, 0, TRUE, &pdev);
pdev->Flags |= DO_BUFFERED_IO;
RtlInitUnicodeString(&symblename, L"\\??\\testdevice_com");
IoCreateSymbolicLink(&symblename, &DeviceName);

for (int i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
{
driver->MajorFunction[i] = MyDriverApi;
}
return 0;
}
又写了一个B 驱动 来卸载A驱动 代码如下
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING str)
{
pDriver->DriverUnload = UnloadDriver;
UNICODE_STRING  targeserver = { 0 };
RtlInitUnicodeString(&targeserver, L"\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet001\\services\\testdevice"); //此处根据A驱动打印的信息硬编码
ZwUnloadDriver(&targeserver);
return 0;
}
如果R3不调用CreateFile 打开符号链接。是可以成功卸载的。但是调用后就卸载不掉。 ZwUnloadDriver 返回值0 实际没有卸载。。。求助大佬。如何弄  
我使用XT查看了进程句柄表。没有找到  testdevice_com 句柄

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//