SobesUP
Все новости

Почему окно SobesUP не видно в демонстрации экрана

Безопасность6 минут

Невидимое окно: скрытие оверлея при демонстрации экрана

Первый вопрос, который задают про SobesUP: «А если меня попросят показать экран?». Ответ короткий: окно ассистента в демонстрацию не попадает. Но короткого ответа недостаточно, чтобы ему доверять, поэтому ниже подробно, как это устроено и где проходит граница.

Как приложения захватывают экран

Zoom, Google Meet, Telegram, OBS и любая другая программа не читает пиксели с монитора напрямую. Она просит операционную систему отдать изображение экрана или окна, и Windows собирает картинку из окон, которые в этот момент показывает композитор. Все способы захвата, которыми пользуются современные приложения, проходят через этот слой.

Механизм, на котором держится защита

В Windows 10 начиная с версии 2004 у окна есть свойство display affinity. Приложение может попросить систему: «показывай меня на мониторе, но исключай из любого захвата». Именно это делает SobesUP через системный вызов SetWindowDisplayAffinity с флагом WDA_EXCLUDEFROMCAPTURE. Дальше работает сама Windows: вы видите окно как обычно, а в потоке демонстрации на его месте ничего нет, ни рамки, ни чёрного прямоугольника, ни тени.

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

Почему не прозрачность и не второй монитор

До этого механизма были популярны обходные пути, и у каждого есть дыра.

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

Исключение из захвата закрывает все три случая одновременно, потому что действует на уровне композиции, а не на уровне конкретной программы.

Что видит интервьюер

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

Чего механизм не закрывает

Мы предпочитаем сказать это сами, чем чтобы вы узнали в неподходящий момент.

  • Камера, направленная на монитор. Если экран снимают телефоном или внешней камерой, никакая программная защита не действует.
  • Аппаратный захват. Карта захвата HDMI между компьютером и монитором видит всё, что видит монитор.
  • Старые версии Windows. На системах до Windows 10 2004 флаг не поддерживается. Приложение это проверяет и предупреждает, если защита не применилась.
  • Удалённый рабочий стол. Если вы подключены к машине через RDP и демонстрируете экран с неё, поведение зависит от настроек сессии. Мы не рекомендуем такой сценарий.

Горячие клавиши тоже не видны

Второй тихий риск: если созвон идёт в браузере, нажатия клавиш могут дойти до страницы. SobesUP регистрирует сочетания как глобальные на уровне системы, и обработанное нажатие в браузер не попадает. Есть отдельный режим маскировки клавиш для тех, кто хочет перестраховаться.

Проверьте, а не верьте

На странице проверки можно включить демонстрацию экрана в своём мессенджере и убедиться, что окна в ней нет, а нажатия клавиш не долетают до браузера. То же самое доступно в самом приложении на главном экране. Один раз перед первым настоящим интервью, потом можно не думать об этом.

Попробуйте на ближайшем собеседовании