【发布时间】:2019-01-04 14:33:16
【问题描述】:
您好,我对内核编程比较陌生(不过我有很多 c++ 开发经验)并且有一个我想要实现的目标:
检测并有条件地阻止用户态程序写入或读取位于我自己的用户态进程中的特定内存地址的尝试。这必须由驱动程序完成。
我已经设置了一个开发环境(运行最新的 windows 10 + virtualkd + windbg 的虚拟机)并且已经通过 Visual Studio 集成(通过局域网)成功部署了一个小型 kmdf 测试驱动程序。
所以我现在的问题是: 如何检测/拦截对我的 ring3 应用程序的 Read/WriteProcessMemory 调用?仅仅阻塞句柄是不够的。
如果有人可以通过链接(一个非过时的)示例或仅通过告诉我如何执行此操作来为我指明正确的方向,那就太好了。
更新: 阅读了很多关于过滤驱动程序和从内核模式挂钩 Windows API 的内容,但我真的不想弄乱 Patchguard 并且真的不知道如何过滤来自用户态的 RPM 调用。保护我的程序不受驱动程序的影响并不重要,只保护 ring3 应用程序。
谢谢你:)
【问题讨论】:
标签: driver protection readprocessmemory kmdf filter-driver