waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2408回复:6

如何防止文件被word修改?

楼主#
更多 发布于:2004-04-16 09:19
拦截了IRP_MJ_SET_INFORMATION + IRP_MJ_WRITE + IRP_MJ_CREATE(CreateDisposition != FILE_OPEN )
其他编辑工具都不能修改,但是word却是例外.

比较笨的方法是先把文件设为只读属性,再拦截就可以了.

不知道还有其他的好方法吗?

最新喜欢:

Biii38Biii38
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-04-26 08:48
搞定了
ULONG  disposition;
ACCESS_MASK DesiredAccess = 0;

disposition = (NextIrpStack->Parameters.Create.Options >> 24) & 0xFF;
if(MmIsAddressValid(NextIrpStack->Parameters.Create.SecurityContext)){
DesiredAccess = (FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES |
FILE_WRITE_EA | FILE_APPEND_DATA) &
NextIrpStack->Parameters.Create.SecurityContext->DesiredAccess;
}

if((disposition != FILE_OPEN) || DesiredAccess){
//
break;
}
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-04-23 17:38
我搞不定呀
ULONG  disposition;
ACCESS_MASK DesiredAccess = 0;

disposition = (NextIrpStack->Parameters.Create.Options >> 24) & 0xFF;
if(MmIsAddressValid(NextIrpStack->Parameters.Create.SecurityContext)){
DesiredAccess = FILE_GENERIC_WRITE &
NextIrpStack->Parameters.Create.SecurityContext->DesiredAccess;
}

if((disposition != FILE_OPEN) || DesiredAccess){
//
break;
}
holk_leng
驱动牛犊
驱动牛犊
  • 注册日期2004-03-02
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-23 16:13
搞定了,正如我刚才说的那样就可以了
holk_leng
驱动牛犊
驱动牛犊
  • 注册日期2004-03-02
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-23 15:32
这个问题我也碰见了,我怀疑要拦截irp_create里面的desiredaccess为可写的请求。

改文件属性为只读肯定不是好办法,很容易被绕过。
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2004-04-16 12:55
你说的我知道,当拦截IRP_MJ_SET_INFORMATION时已经拦截了对文件的删除和改名.
xxcat1220
驱动牛犊
驱动牛犊
  • 注册日期2004-01-19
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-16 12:20
WORD修改文件会建立一个文件副本,在这个文件中修改,然后删除原文件,再将这个临时文件改名为原来的文件
游客

返回顶部