阅读:2408回复:6
如何防止文件被word修改?
拦截了IRP_MJ_SET_INFORMATION + IRP_MJ_WRITE + IRP_MJ_CREATE(CreateDisposition != FILE_OPEN )
其他编辑工具都不能修改,但是word却是例外. 比较笨的方法是先把文件设为只读属性,再拦截就可以了. 不知道还有其他的好方法吗? |
|
最新喜欢:![]() |
沙发#
发布于: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; } |
|
板凳#
发布于: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; } |
|
地板#
发布于:2004-04-23 16:13
搞定了,正如我刚才说的那样就可以了
|
|
地下室#
发布于:2004-04-23 15:32
这个问题我也碰见了,我怀疑要拦截irp_create里面的desiredaccess为可写的请求。
改文件属性为只读肯定不是好办法,很容易被绕过。 |
|
5楼#
发布于:2004-04-16 12:55
你说的我知道,当拦截IRP_MJ_SET_INFORMATION时已经拦截了对文件的删除和改名.
|
|
6楼#
发布于:2004-04-16 12:20
WORD修改文件会建立一个文件副本,在这个文件中修改,然后删除原文件,再将这个临时文件改名为原来的文件
|
|