Как реализовать защиту от копирования с помощью OpenGL render - PullRequest
2 голосов
/ 01 декабря 2010

Я хочу реализовать защиту от копирования для рендеринга OpenGL, вот некоторые идеи, ни один из них не убежден. Не могли бы вы дать мне несколько советов, как это сделать?

API ChangeDisplaySettingsEx позволяет изменять конфигурацию устройства отображения. Он использует структуру VIDEOPARAMETERS, содержащую сведения о защите от копирования. Этот API был представлен на Win2K. Он устанавливает параметры защиты от копирования глобально для каждого выхода, тогда как COPP или OPM устанавливает параметры защиты от копирования для окна приложения.

COPP API доступен только для фильтров DirectShow VRM-7 или VMR-9 и доступен начиная с WinXP. Использование этого подразумевает, что нам нужно визуализировать контент, используя DirectShow. Что произойдет, если мы полностью отобразим наше приложение без Directshow, но создадим фиктивный VRM-9 для установки защиты от копирования?

OPM API доступен только в Vista, но заголовочные файлы являются только частью Windows 7 SDK. Этот API выглядит явно лучше, чем COPP, в частности, он позволяет приложению устанавливать параметры защиты от копирования из дескрипторов монитора окна, поэтому его можно использовать без использования Direct 3D, DirectShow или PMP.

1 Ответ

8 голосов
/ 01 декабря 2010

Защита от копирования не работает. Период. Всегда есть способы добраться до содержимого, отображаемого на экране. Если вы не можете получить его с помощью программы, работающей в системе, вы подключаетесь к выходу видеокарты. Имеются коробки для видеозахвата HDMI по цене менее 250 долларов, утечка мастер-ключей HDCP, защищающих HDMI.

Мой совет: не беспокойтесь о реализации замысловатых схем DRM. Лучше тратить свое время на вещи, которые важны и продолжаются.

РЕДАКТИРОВАТЬ из-за комментариев: Включение защиты от копирования не является функцией OpenGL. Это связано с графической подсистемой операционной системы. В случае Windows защита от копирования HDCP реализована как часть графика фильтра DirectX для видеопотоков. OpenGL отделен от DirectX, поэтому маловероятно, что вы сможете «защитить» то, что было отрисовано с помощью OpenGL.

...