使用cuda获取可见应用程序的屏幕截图

时间:2017-02-17 17:05:43

标签: windows video memory cuda framebuffer

我是Nvidia GTX 1060的拥有者。我知道在Windows上无法直接访问显卡的视频内存。但我在电子邮件列表中的某处读到,可以使用CUDA API在监视器上立即获取显示的像素。不幸的是,我没有找到任何代码示例。

我想要的是类似位图的数组,包含像素的rgb值

arr[0] = 255        // red
arr[1] = 255        // green
arr[2] = 0          // blue
arr[3] = 0          // alpha
arr[4] = 255
...

有人可以告诉我一个如何用CUDA做的例子吗?

我知道有一种使用DirectX或openGL的方法。我已经尝试过,但它太复杂或太慢,并且不能同时使用全屏和窗口应用程序。

1 个答案:

答案 0 :(得分:3)

您所描述的不仅是不可能的,甚至可能被视为安全漏洞。通常,如果没有来自操作系统的某种同意和控制,一个应用程序应该无法检索另一个应用程序的显示窗口。

我记得几年前正好读过那种瑕疵,但我找不到这篇文章了。但是,还有许多其他文章讨论类似的问题。例如:

http://ece.neu.edu/groups/nucar/NUCARTALKS/snp14-gpusteal.pdf

他们讨论了GPU漏洞,允许恶意程序部分重建Chromium中显示的网页。

相关问题