首页
社区
课程
招聘
[求助]DiskPref 不能拦截U盘读写操作???
发表于: 2014-10-24 02:53 6336

[求助]DiskPref 不能拦截U盘读写操作???

2014-10-24 02:53
6336
自己搞了个DiskPref 类似的框架。想达到禁止向可移动磁盘类型设备写入数据。

NTSTATUS
DispatchWrite(
  IN PDEVICE_OBJECT DeviceObject,
  IN PIRP Irp
  )
{
  if (BooleanFlagOn(DeviceObject->Characteristics, FILE_REMOVABLE_MEDIA))
  {
    DbgPrint("Block removeable disk writing... \n");

    Irp->IoStatus.Information = 0;
    Irp->IoStatus.Status = STATUS_SUCCESS;

    IoCompleteRequest(Irp, IO_NO_INCREMENT);
    return STATUS_SUCCESS;
  }
  else
  {
    return _SendIrpToNextDriver(DeviceObject, Irp);
  }
}


用U盘测试了一下,没用禁止写到U盘上。
DiskPerf 只能在 PnP 那搞拦截,不能在 ReadWrite 这里拦截读写吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 1392
活跃值: (5207)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
貌似到了底层是 SCSI 已经不是IRP_MJ_READ WRITE了
2014-10-24 08:16
0
雪    币: 0
活跃值: (756)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
恩 U盘要拦 irp_mj_scsi 而不是 read write
2014-10-24 10:23
0
雪    币: 293
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了
2014-12-7 10:10
0
雪    币: 1
活跃值: (1174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在磁盘这级过滤,硬盘也会被过滤,当然你可以判断下层是否为USB。还有个大问题是会被VMWare绕过(你禁止了,但从VMWare的虚拟机内可以写),以前稍微看过点,Vmware装了些底层的钩子。

更下层的方案是USBHub过滤URB,似乎高版本的VMware(32位下)还是能穿透。
能否再底层我就不懂了
2014-12-7 17:26
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
挂端口驱动有个问题,你这个要针对不同主板做兼容处理……太蛋疼了
2014-12-7 18:15
0
雪    币: 1
活跃值: (1174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不是端口驱动,就是USB总线过滤驱动,跟主板没关系。你看看那个什么U盘管理大师什么的,USSEPro,就这么做的
2014-12-7 21:46
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
做在usbhid上?
2014-12-8 19:10
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
过VMware要做在usbachi(有的是usbport usbohci usbuhci)下吧?
这个不就是根据主板不同而不同?
2014-12-8 19:14
0
雪    币: 1
活跃值: (1174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个我不懂。USSEPro是usbhub的lowerfilter, VMWare6.0可以拦住。好像9.0就不行了。
2014-12-8 20:12
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
vm虚拟了端口驱动,我估计得挂在端口层
2014-12-8 22:36
0
游客
登录 | 注册 方可回帖
返回
//