-
-
[求助]minifilter,文件透明加密,
-
发表于: 2017-9-13 00:18 2748
-
//获取文件长度
LONGLONG offset=(fileInfo->EndOfFile.QuadPart-ENCRYPT_MARK_LEN)-(iopb->Parameters.Read.ByteOffset.QuadPart);
//如果读写偏移超出真正的文件尾
if(offset<0)
{
iopb->Parameters.Read.ByteOffset.QuadPart = fileInfo->EndOfFile.QuadPart + 1;
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}
//校对读写长度
offset=(fileInfo->EndOfFile.QuadPart-ENCRYPT_MARK_LEN)-(iopb->Parameters.Read.ByteOffset.QuadPart+ioo-[>Parameters.Read.Length-1);
//读写长度超过文件真正的尾部
if(offset<0)
{
iopb->Parameters.Read.Length=(fileInfo->EndOfFile.QuadPart-ENCRYPT_MARK_LEN)-(iopb->Parameters.Read.ByteOffset.QuadPart)+1;
FltSetCallbackDataDirty(Data);
readLen = iopb->Parameters.Read.Length;
}
为什么这个要加1呀
iopb->Parameters.Read.ByteOffset.QuadPart = fileInfo->EndOfFile.QuadPart + 1;
还有就是后面那个为什么要-1
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: