在 Win 10 x64 上启用 patchguard 挂钩 ZwDeviceIoControlFile

Hook ZwDeviceIoControlFile with patchguard enabled on Win 10 x64

每当调用 ZwDeviceIoControlFile 时,我都需要更改输出缓冲区。启用 Patchguard 后,是否可以从 Windows 10 x64 中的内核模式驱动程序中挂钩 ZwDeviceIoControlFile?如果没有,我可以使用 ObRegister 回调来更改其输出缓冲区吗?

想知道是否有人在启用 PG 的情况下在 Windows x64 上成功完成此操作。

我最终编写了一个 Hypervisor 并使用 EPT 隐藏了当 PG 对该区域进行读取操作时的实际挂钩。我能够在 PG 不注意 Win 10 x64 的情况下完全挂接内核 API。