2

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

进程监视器还将这些写入操作显示为 WriteFile 操作(广告名称 IRP_MJ_WRITE 和 FASTIO_WRITE),就像我自己写东西时一样(我的操作挂钩正常工作)

这里发生了什么?除了WriteFile之外,还有其他方法可以将内容写入文件吗?

4

2 回答 2

2

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

于 2012-06-18T00:50:14.907 回答
2

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

于 2012-06-16T12:41:45.847 回答