1

对于我正在编写的安全应用程序,我想以最低级别读取视频卡的帧缓冲区。
我想尽可能确定我正在阅读的内容正是最终将放在硬件上点亮屏幕像素的内容,
并且中间没有软件层(或者至少我想要中间的层数尽可能少)。

我已经看到使用 X 在精确的时刻抓取屏幕非常容易,但该调用仍在通过 X 服务器。
我想要一些更底层的东西,即使这意味着在显卡上弄乱了一些 ioctl。
我已经看到了 DRI 和 DRI2 的存在,但它们的记录非常糟糕,尤其是后者。
我真的无法理解它们是如何工作的。您对一项好的研究有任何想法、参考或起点吗?

任何事情都会不胜感激!

4

1 回答 1

0

我不确定阅读帧缓冲区会对您有多大帮助(即使无视 timday 在他的评论中指出的问题,决定您阅读的内容是否是您想要的内容可能不是很容易),但如果您是在 Linux 上这样做你可以映射内核帧缓冲设备,可能使用DirectFB来帮助你。或者,如果您使用的是非 Linux PC 平台,则可以使用 VESA(查看 X.Org 中的 VESA 代码X.Org VESA 驱动程序(实际代码在两者之间拆分)。请注意,您多显示器设置之类的东西可能也会有一些乐趣。

于 2012-05-25T13:58:15.573 回答