scholarman
驱动牛犊
驱动牛犊
  • 注册日期2005-04-04
  • 最后登录2008-04-07
  • 粉丝0
  • 关注0
  • 积分140分
  • 威望14点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
阅读:1359回复:6

被“文件禁止写”折腾死了,请各位路过的大侠999999

楼主#
更多 发布于:2007-02-05 16:55
  本人尝试了N种方法:

1:处理中断IRP_MJ_WRITE
    天知道这个中断是写哪个文件,无从下手......,而且即使拦截了,还是能存盘(看了高手说,要处理catch,晕死,放弃)
2:处理IRP_MJ_CREATE
    直接修改IRP包中打开文件方法,只读方式打开,并且设置了文件属性是只读,但是没有任何作用。
3:处理IRP_MJ_CREATE的完成实例
    套路同2,还是没有任何作用
4:Hook
    最郁闷的方法,直接导致我机器重装

请哪位大侠给个源代码,我是直接修改sfilter的,谢谢!
xx_qiang
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2017-02-27
  • 粉丝2
  • 关注1
  • 积分31分
  • 威望249点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-02-05 17:58
文件禁止写,过滤irp_mj_write和fastiowrite就可以了。
classfree
驱动小牛
驱动小牛
  • 注册日期2004-05-23
  • 最后登录2019-01-06
  • 粉丝1
  • 关注1
  • 积分873分
  • 威望276点
  • 贡献值0点
  • 好评度85点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-02-05 22:39
FastIO系列函数有很多Write的函数样???
具体要拦截哪些函数, 在拦截函数中直接return FALSE吗?
低调点!
xx_qiang
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2017-02-27
  • 粉丝2
  • 关注1
  • 积分31分
  • 威望249点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-02-06 10:04
拦截fastiowrite就可以,返回false。在irp_mj_write的时候返回status_access_denied就可以了
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
地下室#
发布于:2007-02-06 14:16
IRP_MJ_CREATE里面调用SfGetFileName,判断取得的名字在不在你的禁止列表里面,如果在,就结束IRP返回,否则向下继续处理。
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
bladellz
驱动小牛
驱动小牛
  • 注册日期2006-03-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望121点
  • 贡献值0点
  • 好评度120点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-02-09 13:26
如果只是read, IRP_MJ_CREATE也要拦截??!
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2007-02-11 10:55
建议在MJ_CREATE中拦截.

否则你把文件让上层成功打开,.然后又不让写.或者你改掉IO堆栈的参数的话.都有可能存在问题

在这里拦截你可以判断文件允许写的列表,不在的话就让这个操作失败掉.

如果是碰到FILE_READ_DATE | FILE_WRITE_DATE这样的话.那你就可以把FILE_WRITE_DATE去掉

总的一句话.Create中拦截.并且结合MJ_Write来实现
游客

返回顶部