C++ WriteFile挂钩无法捕获写入文件操作

C++ WriteFile挂钩无法捕获写入文件操作,c++,winapi,hook,detours,writefile,C++,Winapi,Hook,Detours,Writefile,我有一个应用程序,它将一些文本数据写入文件。 我想做的是把写作过程挂起来。 我喜欢MS Detours、CreateFile、WriteFile和WriteFilex函数。CreateFile可以正确捕获这些文本文件的创建/打开,但是WriteFile的钩子不能。它捕捉到许多其他的东西,但不是这些。挂钩工作正常。我已经检查过了 进程监视器还将这些写入操作显示为WriteFile operation adv names IRP_MJ_WRITE和FASTIO_WRITE,就像我自己用操作挂钩写东西

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

进程监视器还将这些写入操作显示为WriteFile operation adv names IRP_MJ_WRITE和FASTIO_WRITE,就像我自己用操作挂钩写东西时一样


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

在Windows中,调用CreateFile后,可以使用CreateFileMapping和MapViewOfFile函数对文件进行内存映射。完成后,可以使用任何内存函数(如memcpy)写入文件。对于小文本文件,Windows默认情况下会这样做,这在您的情况下可能会发生。

在Windows中,您可以在调用CreateFile后使用CreateFileMapping和MapViewOfFile函数对文件进行内存映射。完成后,可以使用任何内存函数(如memcpy)写入文件。对于小文本文件,Windows默认情况下会这样做,这在您的情况下可能会发生。

这不是Microsoft的迂回解决方案,但您可以尝试使用我们的DeviceARE挂钩控制台,查看是否在那里调用了函数。它是用C编写的,控制台的源代码包含在发行版中。它非常容易移植到C++,并且可以自由使用它,只有当加载Debug组件时才会出现一个飞溅。此处提供下载

这不是Microsoft迂回解决方案,但您可以尝试使用我们的DeviceAre挂钩控制台,查看是否在此处调用了这些函数。它是用C编写的,控制台的源代码包含在发行版中。它非常容易移植到C++,并且可以自由使用它,只有当加载Debug组件时才会出现一个飞溅。可在此处下载

Hooked CreateFileMapping。在创建文本文件并获取新数据时,不会调用此函数:/钩住CreateFileMapping。在创建文本文件并获取新数据时,不会调用此函数:/另一种选择是NtWriteFile-另一种选择是NtWriteFile-