• XSS.stack #1 – первый литературный журнал от юзеров форума

HVNC и Chrome

darkman666

(L2) cache
Пользователь
Регистрация
16.08.2019
Сообщения
317
Реакции
50
Гарант сделки
6
Добрый день подскажите как победить проблему через хвнц когда запускаешь хром черный экран.
Исходник https://file1.uafile.com/477757
 
Последнее редактирование:
Над этим вопросом бьются лучшие умы hvnc-строения, в том числе и на этом форуме, см. /threads/34216/. В теме по ссылке есть решение для новых ОСей (8-10), а для семерки никто не нашел или не счел нужным поделиться.
Из уважения к форумчанам, сорсы нужно заливать без бинарников и временных файлов, создаваемых студией. Размер уменьшается в 10 раз.
На всякий случай выкладываю оригинал утечки сорсов от abs0lem, на базе которой сделан архив ТС. Пароль местный.
Скрытый контент для зарегистрированных пользователей.
 
Над этим вопросом бьются лучшие умы hvnc-строения, в том числе и на этом форуме, см. /threads/34216/. В теме по ссылке есть решение для новых ОСей (8-10), а для семерки никто не нашел или не счел нужным поделиться.
Из уважения к форумчанам, сорсы нужно заливать без бинарников и временных файлов, создаваемых студией. Размер уменьшается в 10 раз.
На всякий случай выкладываю оригинал утечки сорсов от abs0lem, на базе которой сделан архив ТС. Пароль местный.
Скрытое содержимое
Улыбнуло. Отключи аппаратное ускорение и все будет ок.
 
В предыдущей теме (/threads/34216/) ТС все правильно так и сделал, но утверждает, что не помогло. Давайте спросим у Haunt чем закончились его эксперименты.
 
В предыдущей теме (/threads/34216/) ТС все правильно так и сделал, но утверждает, что не помогло. Давайте спросим у Haunt чем закончились его эксперименты.
Он пытался править командную строку хрома, что нестабильно. Есть и нормальные методики рисовать такие окна
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Он пытался править командную строку хрома, что нестабильно. Есть и нормальные методики рисовать такие окна
Интересно бы было почитать об этом подробнее. Сам когда-то пытался раскурить эту тему, в итоге забил
 
В предыдущей теме (/threads/34216/) ТС все правильно так и сделал, но утверждает, что не помогло. Давайте спросим у Haunt чем закончились его эксперименты.
Мои эксперименты это тесты победившей статьи на экспе, в недавнем конкурсе. У меня есть своя работающая техника, просто стало интересно допом эта техника, описанная в статье. Там было тз, я потрогал это все, ну и все застопорилось в этой технике на том, что окно хрома рисует через раз, фликерит по сути, понять этот момент и от чего зависит рисует в данный момент или нет не вышло и не особо хотелось, на вин 10 кста этот же код заебись работает. В теории можно проверять ректы хрома на форме на png и чекать чёрный там квадрат в фрейме или нет можно было и тупо скипать их, если да. Но я не стал разививать эту тему ибо выглядит костыльно, хотя потенциально рабоче. Хотелось бы узнать как в идеале это должно работать. На вин 8.1-10 есть флаг у PrintWindow 0x2 вроде третим аргументом(pw_renderfullcontent или как то так), с ним проблем вообще нет на хроме. На вин 7 на разных сборках хоть убей, фликерит. Инфы по этому поводу в инете тоже не особо. Смотрел сорцы вебртс хрома, были забавные коменты от разрабов типо
When desktop composition (Aero) is enabled each window is rendered to a
// private buffer allowing BitBlt() to get the window content even if the
// window is occluded. PrintWindow() is slower but lets rendering the window
// contents to an off-screen device context when Aero is not available.
// PrintWindow() is not supported by some applications.
//
// If Aero is enabled, we prefer BitBlt() because it's faster and avoids
// window flickering. Otherwise, we prefer PrintWindow() because BitBlt() may
// render occluding windows on top of the desired window.
//
// When composition is enabled the DC returned by GetWindowDC() doesn't always
// have window frame rendered correctly. Windows renders it only once and then
// caches the result between captures. We hack it around by calling
// PrintWindow() whenever window size changes, including the first time of
// capturing - it somehow affects what we get from BitBlt() on the subsequent
// captures.
//
// For Windows 8.1 and later, we want to always use PrintWindow when the
// cropping screen capturer falls back to the window capturer. I.e.
// on Windows 8.1 and later, PrintWindow is only used when the window is
// occluded. When the window is not occluded, it is much faster to capture
// the screen and to crop it to the window position and size.
if (rtc::IsWindows8OrLater()) {
// Special flag that makes PrintWindow to work on Windows 8.1 and later.
// Indeed certain apps (e.g. those using DirectComposition rendering) can't
// be captured using BitBlt or PrintWindow without this flag. Note that on
// Windows 8.0 this flag is not supported so the block below will fallback
// to the other call to PrintWindow. It seems to be very tricky to detect
// Windows 8.0 vs 8.1 so a try/fallback is more approriate here.
const UINT flags = PW_RENDERFULLCONTENT;

 
Есть и нормальные методики рисовать такие окна
Покажешь, где почитать? Или может сам расскажешь, если знаешь и не лень поделиться? Конкретно как нарисовать хром в битмап через PrintWindow(если мы говорим про эту технику) на семерке? Без мерцаний, чёрных квадратов, чтобы поток кадров был чист.
Отключи аппаратное ускорение и все будет ок.
Неа. Тоже фликерит. Отключал как и у хрома через аргумент. Так и в самой системе через персонализацию в настройках, которые требуют админ прав вроде(не вспомню сейчас)
 
Последнее редактирование:
// Windows 8.0 this flag is not supported so the block below will fallback
// to the other call to PrintWindow. It seems to be very tricky to detect
// Windows 8.0 vs 8.1 so a try/fallback is more approriate here.
Действительно, забавный комментарий: им очень tricky отличить 8.0 от 8.1.
Кстати, кто-нибудь еще тестирует свои разработки на 8.0/Server 2012?

Скрытый контент для пользователей: Jeffs, Haunt.
Прям приватный приват! Намекните хоть: отключаем там ускорение или все-таки нормально-методично рисуем?
 
Прям приватный приват! Намекните хоть: отключаем там ускорение или все-таки нормально-методично рисуем?
Не приват от слова совсем, просто не хочется выносить вновь эту фигню на обсуждение. Под хайдом нет никаких методов/техник.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх