0

有没有办法覆盖 Win32 文件 API,例如 CreateFile()?我希望我的应用程序只为我的应用程序查看一个虚拟文件,但是,该虚拟文件实际上并不存在。

4

2 回答 2

1

存在两种方法 - 使用内核模式驱动程序(记录的一种)和没有这样的驱动程序(一种 hacky 方式)。

使用内核模式驱动程序,您有两种方法 - (1) 创建虚拟文件系统驱动程序(或采用现有的驱动程序)和 (2) 创建文件系统过滤器驱动程序(或采用现有的驱动程序)。驱动程序开发 = 一年左右的工作才能正确且完整地完成。驱动程序开发完全记录在 MSDN 中。

如果没有内核模式驱动程序,您需要使用 API 挂钩。诸如 Detours、MadCodeHook 和 Boxedapp SDK 之类的库可以做到这一点(并且让你也可以这样做)。

钩住一个 API 主题非常大,无法在此处完整描述,但有一篇关于此主题的优秀CodeProject 文章。

于 2014-10-26T07:32:09.540 回答
0

全系统?馊主意。如果它只是您的应用程序,请不要使用标准 API 并自己实现它。但是,如果数据必须在会话之间持续存在,则您必须将数据存储在某个地方(文件、注册表等)。

于 2010-04-09T12:37:59.220 回答