写入文件挂钩未捕获写入文件操作

WriteFile hook doesn't catch writing to file operation

本文关键字:文件 操作      更新时间:2023-10-16

我有一个应用程序,它可以将一些文本数据写入文件。我想做的是挂钩写作过程。我迷上了MS Detours,CreateFile,WriteFile和WriteFileEx函数。CreateFile可以正确地捕获这些文本文件的创建/打开,但WriteFile的钩子没有。它捕获了许多其他东西,但不是这些。挂钩工作正常。我已经检查过了。

进程监视器还将这些写入操作显示为 WriteFile 操作(adv 名称 IRP_MJ_WRITE 和 FASTIO_WRITE),就像我自己编写内容一样(使用我的操作钩子正常工作)

这是怎么回事?除了 WriteFile 之外,还有其他方法可以将某些内容写入文件吗?

在 Windows 中,您可以在调用 CreateFile 后使用 CreateFileMappingMapViewOfFile 函数对文件进行内存映射。完成此操作后,您可以使用任何内存函数(如memcpy)写入文件。对于小文本文件,Windows 默认执行此操作,这可能是您的情况。

这不是一个Microsoft Detours解决方案,但您可以尝试使用我们的Deviare挂钩控制台,看看是否在那里调用了函数。它是用 C# 编写的,控制台的源代码包含在发行版中。移植到C++非常容易,您可以自由使用它(加载Deviare组件时只会出现飞溅)。下载可在此处获得 http://www.nektra.com/products/deviare-api-hook-windows/