I want to read the framebuffer of the videocard at the lowest level possible for a security application I'm writing.
I want to be as sure as possible that what I'm reading is exactly what will be finally put on the bits of the hardware lighting the pixels of the screen,
and that no software layer is in the middle (or at least I want to have the lowest number possible of layers in the middle).

I've seen it's pretty easy to use X to grab the screen in a precise moment, but that call is still passing through the X server.
I would like to have something really more low level, even if this means messing up with some ioctl with the video card.
I've seen the existence of DRI and DRI2, but they are very very badly documented, especially the latter.
I can't really understand how they work. Do you have any idea, reference or starting point for a good research?

Anything would be appreciated!

Thanks!

Daniele