2012-04-05 4 views
1

필자가 쓰고있는 보안 응용 프로그램에서 가능한 최저 수준에서 비디오 카드의 프레임 버퍼를 읽고 싶습니다.
가능한 한 정확하게 읽고 싶습니다. 정확히 화면의 픽셀을 조명하는 하드웨어의 비트를 넣으십시오.
중간에 소프트웨어 계층이 없음 (또는 최소한 나는 중간에 가능한 가장 낮은 수의 레이어를 갖고 싶다.)X에서 최저 수준의 프레임 버퍼 읽기 가능

정확한 순간에 화면을 잡기 위해 X를 사용하는 것이 꽤 쉽지만, 은 여전히 ​​X 서버를 통과하고 있습니다.
비디오 카드로 일부 ioctl을 엉망으로 만들었더라도, 실제로는 더 낮은 레벨 인 을 갖고 싶습니다.
나는 DRI와 DRI2의 존재를 보았지만 매우 심하게 문서화되었다. 특히 후자.
나는 그것이 어떻게 작동하는지 정말로 이해할 수 없다. 좋은 연구를위한 아이디어, 참고 자료 또는 출발점이 있습니까?

무엇이든 주시면 감사하겠습니다.

+0

특정 유형의 오버레이 그래픽 (특히 비디오)의 경우 이미지가 실제로 "프레임 버퍼"로 식별 될 수는 있지만 실제로는 기록되지 않을 수 있음을 알아 두십시오. 그냥 카드에서 출력되는 스트림에 합성됩니다. (이것은 미디어 플레이어 창에서 빈 화면을 캡처하는 다양한 화면 캡처에 대해 불평하는 많은 사람들의 기원입니다.) 당신이하려는 일에 얼마나 많은 영향을 미치는지 확신 할 수 없습니다 그러나 그것은 고려해야 할 것이 있습니다. – timday

답변

0

프레임 버퍼를 얼마나 많이 읽는 것이 도움이되는지 확신 할 수 없습니다 (심지어 댓글이 달린 시간을 그의 의견에서 무시하고, 읽고있는 내용이 너무 쉬운지 여부를 결정하지는 않습니다). 하지만 리눅스에서이 작업을 수행한다면 kernel framebuffer devices을 매핑하고 아마도 DirectFB을 사용하면 도움이 될 것입니다. 또는 Linux가 아닌 PC 플랫폼에 있다면 VESA 코드 (X.OrgX.Org VESA driver)를 살펴보십시오 (실제 코드는 두 코드로 나뉩니다).