-
-
[求助]关于光驱的只读,一点思路,求指点。
-
发表于:
2012-3-30 16:47
5336
-
一个小功能模块。 需要针对U盘和光驱控制只读,禁止执行,完全阻止,这些功能。
开始用minifilter,也遇到一些问题,基本上都解决了,U盘没什么问题,光驱的话,如果在WIN7下用我的电脑打开,直接往盘里面粘贴东西,minifilter是可以阻止的。
但是如果用刻录机往里面写,好像判断不出他是一个写的create,在prewrite里面也看不到写的操作。
在PreCreate里面判断
if (((Data->Iopb->Parameters.Create.Options >> 24) & 0x000000ff) == FILE_CREATE ||
((Data->Iopb->Parameters.Create.Options >> 24) & 0x000000ff) == FILE_OVERWRITE_IF ||
FlagOn(Data->Iopb->Parameters.Create.SecurityContext->DesiredAccess, GENERIC_WRITE))
{}
在PreWrite里面判断下盘符是不是光驱的盘符 如果是 也认为是写。
这两个地方都没有拿到。不知道是不是还有什么没判断。
也考虑过pnp的过滤驱动,感觉为了做了做这小功能,又不至于。
观察了老外的一个软件,发现他挂了WH_CBT,和WH_CALLWNDPROCRET这两个消息,WH_CBT好像让刻录机软件在遍历光驱的时候 找不到,只有资源浏览器才能看到,WH_CALLWNDPROCRET可能就是负责对一些操作的过滤。
具体不清楚他怎么做到的,求指点。
any advice is appreciated,thanks in advance~
[课程]FART 脱壳王!加量不加价!FART作者讲授!