Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Вниз

Защита изображения   Найти похожие ветки 

 
AlexLines   (2007-05-03 16:02) [0]

Уважаемые Знатоки. Возможно ли защитить изображение от PrintScreen и подобных программ, как это сделано в Windows Media Player (при загрузке *.bmp или видео при снятии изображения с экрана он черный)

Как блокировать клавишу PrtScr я знаю. Но существует множество подобных программ.


 
TRUNK ©   (2007-05-03 16:08) [1]

Windows Media Player выводит изображение на overlay, поэтому оно и не снимается. Так что это не защита.


 
AlexLines   (2007-05-03 16:35) [2]

А как можно вывести изображение на overlay?

Спасибо


 
DVM ©   (2007-05-03 16:38) [3]


> А как можно вывести изображение на overlay?

Это тоже не поможет, ибо любая программа для снятия скриншотов, например SanagIT или HyperSnapDX знает тоже об оверлее и умеет такие скриншоты снимать.


 
AlexLines   (2007-05-03 16:40) [4]

Вообще не возможно защитить? Может быть есть какие-либо компоненты?


 
DVM ©   (2007-05-03 16:45) [5]


> Вообще не возможно защитить? Может быть есть какие-либо
> компоненты?

А зачем, если не секрет? Может другое решение есть?


 
AlexLines   (2007-05-03 16:55) [6]

Вообще в TImage выводится изображение в формате wmf. А зачем - чтобы не скачали уникальные рисунки. Файлы wmf прочитать нельзя - они защищены, можно только снять с экрана.


 
AlexLines   (2007-05-03 16:59) [7]

Или может быть watermark ставить, только во время printscreen. Но как узнать, что тебя снимают (:


 
DVM ©   (2007-05-03 17:06) [8]


> Файлы wmf прочитать нельзя - они защищены

каким образом?


 
AlexLines   (2007-05-03 17:32) [9]

Заархивированы и защищены паролем. Разархивируются и выводятся на TImage


 
DVM ©   (2007-05-03 17:35) [10]


> Разархивируются и выводятся на TImage

Если заархивированы стандартным алгоритмом то вряд ли это помешает достать фотки


 
AlexLines   (2007-05-03 17:38) [11]

Нет не стандартным. Хорошо защищены. Однако с экрана их сможет снять любой.


 
DVM ©   (2007-05-03 17:42) [12]


> Однако с экрана их сможет снять любой.

Но ведь с экрана можно получить только растровый вариант. А более качественный векторный все равно недоступен будет.


 
AlexLines   (2007-05-03 17:48) [13]

Согласен. Однако все же неужели ничего в этом плане сделать не получиться? Может быть можно сделать событие, которое будет реагировать на снимок с экрана. Какие могут быть пути решения?

Спасибо всем кто участвует в этом обсуждении!


 
Fenik ©   (2007-05-03 17:51) [14]

От фотоаппарата нет защиты ))


 
DVM ©   (2007-05-03 17:54) [15]


> Какие могут быть пути решения?

Ну может быть сделать глобальный перехват функции GetDC и смотреть когда в нее 0 передается или хэндл твоего окна. GetDC по любому должна быть вызвана при снятии скриншота.


 
AlexLines   (2007-05-03 17:58) [16]

Согласен. Однако намного сложнее. Кроме этого в моей программе есть Flash ролики, а они свободно могут быть сняты, к примеру, Adobe Captivate. А здесь Вы скажете, что для этого есть видеокамера?


 
AlexLines   (2007-05-03 18:02) [17]


> Ну может быть сделать глобальный перехват функции GetDC
> и смотреть когда в нее 0 передается или хэндл твоего окна.
>  GetDC по любому должна быть вызвана при снятии скриншота.
>


Спасибо за ответы. Буду тестировать.

Буду благодарен за разные решения этой проблемы написанные на этом обсуждении!


 
Чародей ©   (2007-05-03 18:47) [18]

может проще для предпросмотра накладывать на рисунок искажения(черные полосы например), потому что если кто-то захочет то дотянется до видеопамяти и скачает изображение с экрана по пиксельно не вызывая ни каких функций


 
Sapersky   (2007-05-04 14:25) [19]

любая программа для снятия скриншотов, например SanagIT или HyperSnapDX знает тоже об оверлее и умеет такие скриншоты снимать.

Проверял HyperSnapDX 5.62 с моим оверлейным примером:
http://www.delphimaster.ru/articles/directx/desktoponfire.zip
- не берёт, видимо, из-за того, что рассчитана на использование оверлеев через DirectShow (MediaPlayer захватывает нормально), а у меня DirectDraw. Хотя если "кто-то захочет", то он может сделать и перехват интерфейсов DirectDraw.


 
Vovan # 2   (2007-05-04 14:30) [20]

Отлично, уже набирается. Делаеть динамическое ежесекнудное переключение устройств вывода - то через DirectShow, то через DirectDraw.


 
Sapersky   (2007-05-04 15:10) [21]

Делаеть динамическое ежесекнудное переключение устройств вывода - то через DirectShow, то через DirectDraw.

В защищаемой программе?
Сомневаюсь, что из этого выйдет что-то путное. Во-первых, не уверен, что получится одновременно инициализировать DirectShow и DirectDraw с оверлеем (да и без оверлея - ни разу не пробовал, не факт, что они уживутся, т.к. DShow внутри использует тот же DDraw). Во-вторых, если стоит перехват и на то и на другое - захватит, как ни переключайся.

Смысл использования DirectDraw-оверлея разве что в том, чтобы защититься от популярных программ-грабилок (и то надо бы протестировать более чем 1 штуку), т.е. от обычного пользователя. От специалиста не спасёт ничто :)

Ещё вариант без оверлея - кроме GetDC перехватывать также и DirectDrawSurface.Blt c первичной поверхности. Хотя бы для DDraw7 как наиболее часто используемого.
Но эти перехваты также можно обнаружить и снять, вон у Касперского написано, что он может отлавливать внедрение DLL, надо будет попробовать.


 
DVM ©   (2007-05-04 15:11) [22]


> Sapersky   (04.05.07 14:25) [19]

SnagIT тоже не захватывает твой пример.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.042 c
2-1204363054
makz
2008-03-01 12:17
2008.03.30
Запрос


2-1204573645
leha_1987
2008-03-03 22:47
2008.03.30
Горит лаба ... Завтра сдавать... PLEASE HELP


15-1203006018
Cyrax
2008-02-14 19:20
2008.03.30
Общепринятый формат записи федеральных номеров сотовых телефонов~


2-1204619691
simon26
2008-03-04 11:34
2008.03.30
Не получается удалять содержимое таблицы


15-1203079073
djabber
2008-02-15 15:37
2008.03.30
Где можно скачать книги по игре Го?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский