kingshore
驱动牛犊
驱动牛犊
  • 注册日期2007-05-28
  • 最后登录2007-08-07
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1840回复:1

fileMon监视文件修改时的特征

楼主#
更多 发布于:2007-06-21 17:52
如题,当文件修改时,fileMon会产生许多的纪录,比如:
1    14:27:45.777    System:4    IRP_MJ_CREATE    D:\fileMonTest\test4.txt    SUCCESS    Attributes: N Options: OpenIf    
2    14:27:45.777    System:4    IRP_MJ_CREATE    D:\fileMonTest\test4.txt    SUCCESS    Attributes: N Options: Open    
3    14:27:45.777    System:4    IRP_MJ_QUERY_INFORMATION    D:\fileMonTest\test4.txt    SUCCESS    FileInternalInformation    
4    14:27:45.777    System:4    FASTIO_QUERY_STANDARD_INFO    D:\fileMonTest\test4.txt    SUCCESS    Size: 7643    
5    14:27:45.777    System:4    IRP_MJ_CLEANUP    D:\fileMonTest\test4.txt    SUCCESS        
6    14:27:45.777    System:4    IRP_MJ_CLOSE     D:\fileMonTest\test4.txt    SUCCESS        
7    14:27:45.777    System:4    FSCTL_REQUEST_BATCH_OPLOCK    D:\fileMonTest\test4.txt    SUCCESS        
8    14:27:45.777    System:4    FASTIO_QUERY_NETWORK_OPEN_INFO    D:\fileMonTest\test4.txt    SUCCESS        
9    14:27:45.777    System:4    IRP_MJ_QUERY_INFORMATION    D:\fileMonTest\test4.txt    SUCCESS    FileEaInformation
。。。。
怎样从这些纪录中找到可以标示文件修改的规律,请大家帮忙了,谢谢!
ceabie
驱动牛犊
驱动牛犊
  • 注册日期2006-08-23
  • 最后登录2010-07-21
  • 粉丝0
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值0点
  • 好评度59点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-06-22 12:52
本地磁盘上:
IRP_MJ_CREATE  
Options: OpenIf , create, Overwirteif
Complete(完成函数HookDone):  Irp->IoStatus.Information = FILE_CREATED ,FILE_OVERWRITTEN

IRP_MJ_READ  和 IRP_MJ_WRITE
Complete:  Irp->IoStatus.Information 不为 0 (实际写入的字节)

IRP_MJ_SET_INFORMATION
 currentIrpStack->Parameters.SetFile.FileInformationClass ==
FileBasicInformation
FileDispositionInformation
FileLinkInformation
FilePositionInformation
FileRenameInformation
FileAllocationInformation
FileEndOfFileInformation
FileValidDataLengthInformation
其中:
FileRenameInformation Complete:
Irp->IoStatus.Status == STATUS_OBJECT_NAME_COLLISION 对文件不改动
FileDispositionInformation:
(PFILE_DISPOSITION_INFORMATION)Irp->AssociatedIrp.SystemBuffer->DeleteFile == TRUE
同时IRP_MJ_CREATE中
currentIrpStack->Parameters.Create.SecurityContext->DesiredAccess & DELETE == RRUE
IRP_MJ_CLOSE 删除文件
其他的可以看MSDN

你可能还要修改代码才能看得更清楚.
XeChini
游客

返回顶部