我有一个应用程序,它可以向文件写入一些文本数据。 我想做的是 Hook 写作过程。 我迷上了 MS Detours、CreateFile、WriteFile 和 WriteFileEx 函数。 CreateFile 可以正确捕获这些文本文件的创建/打开,但 WriteFile 的 Hook 则不能。它捕捉到了许多其他的东西,但没有捕捉到这些。 Hook 工作正常。我已经检查过了。
进程监视器还将这些写入操作显示为 WriteFile 操作(副名称 IRP_MJ_WRITE 和 FASTIO_WRITE),就像我自己写东西时一样(我的操作钩子(Hook)工作正常)
这是怎么回事?除了 WriteFile 之外还有其他方法可以向文件写入内容吗?
最佳答案
在 Windows 中,您可以在调用 CreateFile 后使用 CreateFileMapping 和 MapViewOfFile 函数来内存映射文件。完成此操作后,您可以使用任何内存函数(如 memcpy)写入文件。对于小文本文件,Windows 默认情况下会执行此操作,您的情况可能会发生这种情况。
关于c++ - WriteFile Hook 无法捕获写入文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11063424/