Сейчас на форуме: NIKOLA, Magister Yoda (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› защита от скриншотов в Windows
Посл.ответ Сообщение

Ранг: 35.3 (посетитель)
Активность: 0.01=0.01
Статус: Участник

Создано: 25 декабря 2017 12:09
· Личное сообщение · #1

В последнее время наткнулся сразу на несколько случаев защиты от скриншотов: у Касперского (модуль "безопасные платежи" блокирует скриншоты в браузере), у Starforce и в Outlook (подсовывает в скриншот чёрный прямоугольник вместо окна письма, у которого в разрешениях запрещено копирование). Катастрофически мало информации о технической стороне реализации. Если с каспером всё понятно, там на уровне драйвера можно что угодно творить, то как Outlook, запущенный даже без прав администратора, может перехватывать API в других процессах? Буфер обмена он не анализирует, т.к. портит снимки, сделанные без PrintScreen (CopyFromScreen сразу возвращает отредактированное изображение).




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 25 декабря 2017 14:51 · Поправил: Модератор
· Личное сообщение · #2

Сейчас уже никто в здравом уме не перехватывает функции во всех процессах. Скорее всего сделано на штатных механизмах винды.
Но штука любопытная, если скажете как повторить на Outlook, будет время свободное, посмотрю.
З.Ы. Возможный вариант https://blogs.msdn.microsoft.com/oldnewthing/20130603-00/?p=4193/



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 25 декабря 2017 15:16
· Личное сообщение · #3

Archer пишет:
Возможный вариант

Ну так на Windows7 и выше (+DWM-composited) они так обычно и делают втч и аутлук.



Ранг: 35.3 (посетитель)
Активность: 0.01=0.01
Статус: Участник

Создано: 25 декабря 2017 15:32 · Поправил: Gauri
· Личное сообщение · #4

Технология называется IRM:
--> Link <--
(обращаем внимание на фразу "предотвратить копирование содержимого, защищенного службой IRM, с помощью средства "Ножницы" в Windows")
Т.е. нужно развернуть AD, Exchange, добавить шаблоны политики прав - после этого в Outlook при отправке письма в разделе "параметры" можно будет выставить разрешение "не пересылать".

Добавлено спустя 15 часов 40 минут
Всем спасибо, действительно, через SetWindowDisplayAffinity задаётся. Соответственно, вариантов обхода масса:
-временно убить DWM
-инжектом вызвать SetWindowDisplayAffinity второй раз, сняв флаг
-использовать более низкоуровневые штуки типа FRAPS
-понятное дело, скриншоты с помощью гипервизора никто не отменял
-в случае конкретно с RMS, ключ расшифровки содержимого один, ограничения задаются клиентским приложением - т.е. можно получить ключ и расшифровать сторонним приложением.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 26 декабря 2017 16:36
· Личное сообщение · #5

--> Link <--

-----
vx




Ранг: 35.3 (посетитель)
Активность: 0.01=0.01
Статус: Участник

Создано: 27 декабря 2017 15:32
· Личное сообщение · #6

difexacaw
Видел, но там устаревшая инфа.



Ранг: 44.8 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 27 декабря 2017 16:13
· Личное сообщение · #7

difexacaw пишет:
--> Link <--

цитата оттуда:

"Нигде. Это была заготовка для UIPI, реализованного в Vista.
http://blogs.msdn.com/b/vishalsi/archive/2006/11/30/what-is-user-interface-privilege-isolation-uipi-on-vista.aspx

+ http://msdn.microsoft.com/en-us/windows7trainingcourse_uipi_unit.aspx

Но поскольку товарищ bowrouco он же Инде Клерк на своем пентиуме 4 не может поставить ничего кроме Windows XP он решил, что это некий могучий сандбокс и нес бред про это на куче форумов, включая этот."

Это угар

| Сообщение посчитали полезным: unknownproject


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 27 декабря 2017 18:19 · Поправил: difexacaw
· Личное сообщение · #8

SegFault

О чём вы говорите. Название техники значения не имеет; ограничение существует лишь в виде условной конструкции/блока в нт шадов. У меня нет 10-ки гуй ядра, но есть 8-ка. Всегда слой защиты только наращивается, но никогда не сокращается. По этому ваши утверждения противоречат реальности. Почему вы сами не потратите минуту времени, не откроете ядро гуя и посмотрите на механизм защиты, не понимаю ?

ValidateHwndEx:
-> CC(_gbValidateHandleForIL)
-> CC(_gbEnforceUIPI)

-----
vx




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 27 декабря 2017 19:04
· Личное сообщение · #9

У меня более простой вопрос: в проге есть защита от скрина - нажимаешь PrintScreen и ... ничего не происходит. По виду всё завязано на OpenClipboard-EmptyClipboard-SetClipboardData. Ноплю EmptyClipboard/или не даю открывать OpenClipboard (куча разных вариаций) - требуемый скрин не появляется (один раз вроде с другого окна отсканило). Как этот механизм правильно работает? Я не думаю, что нужно именно разбирать потроха проги - достаточно WinAPI манипулировать??!




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 27 декабря 2017 19:15
· Личное сообщение · #10

ELF_7719116

> У меня более простой вопрос .. > нажимаешь PrintScreen

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

-----
vx




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 27 декабря 2017 19:26
· Личное сообщение · #11

difexacaw пишет:
Перенос данных в буфера это последний этап работы всего механизма, так что этот ваш буфер фактически к снятию контекста окна отношения не имеет

Так собственно, сама суть проблемы в чём? Идёт обработка при нажатии клавиши PrintScreen - занопить вызов всей процедуры, исходя из Вашей логики, тоже ничего не даст?!?




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 27 декабря 2017 20:41
· Личное сообщение · #12

ELF_7719116

Нужно исследовать км фильтр - механизмы ядра, которые блокируют доступ.

-----
vx




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 27 декабря 2017 21:33
· Личное сообщение · #13

difexacaw пишет:
механизмы ядра, которые блокируют доступ.

какие механизмы ядра?? Там примитивная прога, рожденная локальными погромистами - низкоуровневым контента никакого нет и не было. Банальная обработка клавиши PrintScreen.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 28 декабря 2017 17:53
· Личное сообщение · #14

ELF_7719116

Откуда вы знаете что юм событие по пртскр обрабатывается, вы исследовали целевое апп ?

> низкоуровневым контента никакого нет и не было.

Любой высокоуровневый механизм является обёрткой вокруг ядерного. Я не имел ввиду что используются низкоуровневые фичи напрямую. Интерфейсы нужно искать в доках и на мсдн.

-----
vx




Ранг: 44.8 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 28 декабря 2017 17:56
· Личное сообщение · #15

difexacaw пишет:
Любой высокоуровневый механизм является обёрткой вокруг ядерного. Я не имел ввиду что используются низкоуровневые фичи напрямую. Интерфейсы нужно искать в доках и на мсдн.

опять мимо, илитный
фиберы к примеру реализованы без всякого ядра в юзермоде




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 28 декабря 2017 20:11 · Поправил: difexacaw
· Личное сообщение · #16

SegFault

Фиберов не существует, хоть такое понятие и есть. Это синхро абстракция. А раз друг мой ты это не понимаешь, это даёт тебе есчо один минус к оценке. Если вам это интересно, хоть и не в тему - сейчас это понятие полноценно реализовано, это worker factory, ядерный обьект, который имеет смысл ваших XP абстракций.

-----
vx




Ранг: 1.4 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 28 декабря 2017 23:01
· Личное сообщение · #17

SegFault пишет:
фиберы к примеру реализованы без всякого ядра в юзермоде

Вы лучше попробуйте реализовать свой мотор, как я. Тогда знатно матчасть прокачали и про фиберы более толково б написали




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 29 декабря 2017 06:48
· Личное сообщение · #18

Что-то "мотор" уже не вставляет. difexacaw, прими запрос на новый термин, Новый Год всё же.



Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 29 декабря 2017 08:10 · Поправил: Alchemistry
· Личное сообщение · #19

Ответ ТС уже дали, причем исчерпывающий. Закройте уже тред (и опционально этого дурачка с сандбоксаме и моторами).

difexacaw пишет:
ValidateHwndEx:
-> CC(_gbValidateHandleForIL)
-> CC(_gbEnforceUIPI)


господи, ты даже не понял что скопировал :D



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 29 декабря 2017 08:49
· Личное сообщение · #20

Простите, > не удержался <
Чисто по дружеский, с наступающим, Инде!

| Сообщение посчитали полезным: shellstorm


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 29 декабря 2017 18:57 · Поправил: difexacaw
· Личное сообщение · #21

Alchemistry

Я не скопировал, а напечатал. Впрочем не важно. Я так понимаю это всё безнадёжно,

-----
vx




Ранг: 44.8 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 29 декабря 2017 19:04
· Личное сообщение · #22

difexacaw пишет:
Фиберов не существует

difexacaw пишет:
Это синхро абстракция.

Ты совсем ***? открой мсдн хоть https://msdn.microsoft.com/en-us/library/windows/desktop/ms682661(v=vs.85).aspx, синхроабстракция ***...

Добавлено спустя 3 минуты
difexacaw
***, тред пул придумали как раз чтобы избегать межкольцевых переходов, которые наиболее затратны с точки зрения процессорного времени в NT




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 29 декабря 2017 19:54 · Поправил: difexacaw
· Личное сообщение · #23

Alchemistry

Пусть сообщество определит что вы за ***.

- спам в лк.

SegFault

Вы уважаемый на столько ***, что если вас цитировать меня наверное забанят. Удивительно как вы тут выжили.

-----
vx




Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 29 декабря 2017 20:32
· Личное сообщение · #24

Тема конечно скатилась в предпраздничный оффтоп, но все же.
На самом деле крайне печально видеть (хоть мы и не должны были этого видеть) такое отношение участников форума друг к другу. Вместо того чтобы общими силами делать что-то классное и полезное, или просто позитивно общаться (а посты Инде по большей части сложно воспринимать без позитива, что бы он там ни писал), эти нелепые попытки самоутверждения скатившиеся в простые оскорбления... ну зачем? Что вы очередной раз в интернете хотите кому-то доказать? Грусть-печаль.

| Сообщение посчитали полезным: SReg

Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 30 декабря 2017 00:47
· Личное сообщение · #25




 eXeL@B —› Крэки, обсуждения —› защита от скриншотов в Windows
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати