catface
驱动小牛
驱动小牛
  • 注册日期2009-01-11
  • 最后登录2014-03-09
  • 粉丝1
  • 关注1
  • 积分155分
  • 威望1341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
阅读:3152回复:5

求助 关于拦截文件删除重命名问题

楼主#
更多 发布于:2011-03-11 09:17
根据需要我拦截了文件的 CREATE SETINFOR 来过滤 文件创建删除信息
但是如果是删除文件所在的上级目录那么,文件删除有显示 ,但是从回收站恢复文件夹,却没有文件创建、重命名的任何信息
请问问题在哪里? 谢谢
liuyinping
驱动牛犊
驱动牛犊
  • 注册日期2007-07-12
  • 最后登录2013-05-16
  • 粉丝0
  • 关注1
  • 积分139分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2011-03-11 09:38
FLT_PREOP_CALLBACK_STATUS
PreSetInformation(__inout PFLT_CALLBACK_DATA Data,
                  __in PCFLT_RELATED_OBJECTS FltObjects,
                  __deref_out_opt PVOID *CompletionContext)
{
    PFLT_IO_PARAMETER_BLOCK            pIopb = Data->Iopb;
    ULONG                            IrpFlags = Data->Iopb->IrpFlags;


FileInformationClass = pIopb->Parameters.SetFileInformation.FileInformationClass;
    if (FileInformationClass == FileEndOfFileInformation)
    {
        FileEndInfo.EndOfFile.QuadPart = ((PFILE_END_OF_FILE_INFORMATION) pIopb->Parameters.SetFileInformation.InfoBuffer)->EndOfFile.QuadPart;
    }
    else if (FileInformationClass == FileDispositionInformation)
    {
        FileDispositionInfo.DeleteFile = (BOOLEAN) *((PBOOLEAN) pIopb->Parameters.SetFileInformation.InfoBuffer); // 1
    }
    else if (FileInformationClass == FileRenameInformation)
    {
        BOOLEAN    bOk = FALSE;
        WCHAR    DestFileName[MAX_PATH] = {0};



if (_wcsnicmp(FileName, DestFileName, ipos) == 0)
        {
            //KdPrint(("PreSetInformation! pFileObject = 0x%08X\n", pFileObject));
            Status = RenameOperation(FileName, DestFileName);
        }
        else if (bDestInList)
        {
            //KdPrint(("PreSetInformation! pFileObject = 0x%08X\n", pFileObject));
            Status = CutOperation(FileName, DestFileName);
        }
        else if (bSrcInList)
        {
            //KdPrint(("PreSetInformation! pFileObject = 0x%08X\n", pFileObject));
            Status = DeleteOperation(FileName);
        }




catface
驱动小牛
驱动小牛
  • 注册日期2009-01-11
  • 最后登录2014-03-09
  • 粉丝1
  • 关注1
  • 积分155分
  • 威望1341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2011-03-11 11:26
谢谢

比如 我删除一个包含在222的文件夹下的111.DOC
删除有显示 但是从回收站回复222文件夹 既无111.DOC的创建显示也无111.DOC的重命名显示
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
地板#
发布于:2011-03-11 17:11
用户被禁言,该主题自动屏蔽!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地下室#
发布于:2011-03-12 21:27
回收站中的名字是改过的,你需要知道 它生成文件名的规则.没有对此作过研究
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
catface
驱动小牛
驱动小牛
  • 注册日期2009-01-11
  • 最后登录2014-03-09
  • 粉丝1
  • 关注1
  • 积分155分
  • 威望1341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
5楼#
发布于:2011-03-12 23:24
我的目标是监控单个软件
删除文件夹也能发现111.doc的删除和DCX.doc的生成
但是恢复文件夹却没有任何renname 和CREATE的截获

恢复文件夹难道属于目录控制irp?
游客

返回顶部