gpt4 book ai didi

winapi - Windows : How to intercept Win32 disk I/O API

转载 作者:行者123 更新时间:2023-12-02 07:39:44 25 4
gpt4 key购买 nike

在 Windows 上,所有磁盘 I/O 最终都是通过 Win32 API 调用(例如 CreateFileSetFilePointer 等)发生的。

现在,是否可以拦截这些磁盘 I/O Win32 调用,并在运行时为所有动态链接的 Windows 应用程序 Hook 您自己的代码?也就是说,应用程序通过 Windows DLL 而不是静态 C 库获取其 CreateFile 功能。

我的一些限制是:

  1. 没有源代码:我没有要拦截的进程的源代码。

  2. 线程安全:我的钩子(Hook)代码可能会动态分配自己的内存。此外,因为该内存将与多个被拦截的进程(及其线程)共享,所以我希望能够序列化对其的访问。

  3. 条件委托(delegate)和覆盖:在我的 Hook 代码中,我希望能够决定是委托(delegate)给原始 Win32 API 功能,还是使用我自己的功能,或两者兼而有之。 (很像 C++ 或 Java 中子类的重写方法中对父类(super class)方法的可选调用。)

  4. 常规用户空间代码:我希望能够在不编写任何设备驱动程序的情况下完成上述任务,这主要是由于编写设备驱动程序所涉及的复杂性。

如果这是可能的,我将不胜感激一些指示。源代码不是必需的,但总是受欢迎的!

最佳答案

您可能想查看mhook如果 Detours 不是您想要的。

以下是使用钩子(Hook)时可能遇到的一些问题:

关于winapi - Windows : How to intercept Win32 disk I/O API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com