slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2153回复:10

修改FileMon,拦截IRP_MJ_WRITE,请大虾们看一下:

楼主#
更多 发布于:2003-08-26 14:21
我想拦截IRP_MJ_WRITE,代码片断如下:
case IRP_MJ_WRITE:

            if( FilterDef.logwrites )
{
        Irp->IoStatus.Information = 0;
        Irp->IoStatus.Status = STATUS_ACCESS_DENIED; // or some other error code

return Irp->IoStatus.Status;
}
本来我只是在include里面包含了c:\\a.txt,按道理应该只是拦截对c:\\a.txt的写操作。结果所有的写操作都被拦截了!为什么?那位大虾能指点一下。先谢谢了
都市贫民
slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-29 09:40
这么多天一个回复的都没有啊,真失望啊,是不是我的问题太菜了?
都市贫民
else
驱动小牛
驱动小牛
  • 注册日期2002-10-21
  • 最后登录2004-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-29 12:57
这是肯定的,所有的写文件都会经过IRP_MJ_WRITE,你要把不是写
C:\\aaa.txt的放过

[编辑 -  8/29/03 by  else]
slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-29 20:27
可以我已经在include 里面只包含了c:\\a.txt啊?
else;你能给我说一说吗?
都市贫民
brianwsun
驱动牛犊
驱动牛犊
  • 注册日期2003-07-29
  • 最后登录2005-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-09-12 12:31
case IRP_MJ_WRITE:

if( FilterDef.logwrites )
{
Irp->IoStatus.Information = 0;
Irp->IoStatus.Status = STATUS_ACCESS_DENIED; // or some other error code

return Irp->IoStatus.Status;
}

最后一个Return只对a.txt有效吗?
你的判断在哪儿?如果其它文件也在这儿返回,则就不能调用缺少的写操作了。
slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-12 13:06
最后一个Return只对a.txt有效吗?
你的判断在哪儿?如果其它文件也在这儿返回,则就不能调用缺少的写操作了。
 

我认为只对a.txt有效,但是实际上全部拦截了,
在filemonhookroutine函数里面
都市贫民
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
6楼#
发布于:2003-09-12 13:20
[quote]最后一个Return只对a.txt有效吗?
你的判断在哪儿?如果其它文件也在这儿返回,则就不能调用缺少的写操作了。
 

我认为只对a.txt有效,但是实际上全部拦截了,
在filemonhookroutine函数里面 [/quote]

问题应该出在判断部分,最好把代码贴出来看看.
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-09-12 14:10
代码就是上面的啊,我用的就是filemon的源代码
都市贫民
slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-09-12 16:08
这个问题已经解决,感谢 =kk=
请来领分
都市贫民
brianwsun
驱动牛犊
驱动牛犊
  • 注册日期2003-07-29
  • 最后登录2005-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-09-12 16:10
只有上面这部分的话,你判断是否是a.txt的语句在哪儿?
这不就是全部拦住了吗?
slummer
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-09-12 17:30
只有上面这部分的话,你判断是否是a.txt的语句在哪儿?
这不就是全部拦住了吗?

我重新改写了,现在好了,多谢
都市贫民
游客

返回顶部