3

有没有办法在绘制之前修改帧缓冲区?假设我想在任何桌面应用程序的整个屏幕中将红色值设置为零。

1) 捕获绘图事件并获取帧缓冲区

2) 获取每个像素并将 R=0 设置为 RGB 值(使用 GPU 语言以避免 GPU->CPU 内存传输)

3) 绘制修改后的帧缓冲区

4

1 回答 1

2

哈,我找到了您可能正在寻找的东西:

直接内核对象操作

这是一个可以编写此类过滤器驱动程序的 Windows API,您正在寻找。他们可以授予您对内核内存的完全访问权限并允许您对其进行修改。至于你可以挂钩文件系统和位置,作为内核内存本身和较低级别的网络管理,甚至可以使操作系统本身崩溃,我敢打赌你可以在它们被提交到 GPU 之前挂钩 GPU 信息!

以下是它的简短描述:

http://www.blackhat.com/presentations/win-usa-04/bh-win-04-butler.pdf

Windows 下的 API 能够执行这些钩子,例如:

女士绕道

我不愿意在那个 API 中工作,但从描述中它应该能够做到这一点。

于 2013-08-25T09:51:13.147 回答