URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 90185
[ Назад ]

Исходное сообщение
"Просмотрщик VNC, отображающий активность на рабочем столе в ..."

Отправлено opennews , 27-Май-13 10:24 
Андрей Сидоров представил (http://permalink.gmane.org/gmane.comp.lang.javascript.nodejs...) проект vnc-over-gif (https://github.com/sidorares/vnc-over-gif), в рамках которого подготовлен работающий в браузере VNC-просмотрщик, использующий для отображения содержимого удалённого рабочего стола поток в виде анимированного GIF-изображения. Данные передаются в форме непрерывного потока, а не отдельных файлов,  что потребовало внесение изменения в библиотеку для формирования анимированных GIF.

Код серверной части, транслирующей вывод от VNC-сервера, написан на JavaScript и работает под управлением Node.js. На стороне клиента для просмотра сеанса рабочего стола достаточно поддержки анимированных GIF-изображений (следует открыть ссылку вида http://localhost:4455/screen.gif?host=хост&port=5900&password=пароль), т.е. поддерживаются браузеры начиная с выпущенного в 1995 году Netscape Navigator 2.0.


URL: http://www.theregister.co.uk/2013/05/27/dev_releases_vnc_ove.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=37020


Содержание

Сообщения в этом обсуждении
"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Омский линуксоид , 27-Май-13 10:24 
Тяжеловато наверное... Переписывать на С будут?

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено pavlinux , 27-Май-13 14:02 
Бойян - у нас такое работает аж с 2006 году. Не GPL и не опен соурс. ФСБ Private License :)

Кстати в двух вариантах: один GIF или pJPEG с задаваемой в реалтайме частотой.
Ессесенно шифрование по 89 или 2004 ГОСТам, можно SSL/DES/AES врубить.  
Более того, VNC это всего лишь один из вариантов транспорта, дамп экрана
снимается прям в ядре с устройства. Можно пихать эти дампы сплющенные LZMA,
прям в езернет/ip/http фреймы. А еще есть вариант JPEG-diff - отсылаются
только изменения от предыдущего фрейма, обратная сборка перекладывается на клиента.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 14:25 
Да ты крутой!

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено pavlinux , 27-Май-13 14:30 
> Да ты крутой!

Потому, что Гладиолус!


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 17:05 
> Бойян - у нас такое работает аж с 2006 году. Не GPL
> и не опен соурс. ФСБ Private License :)
> Кстати в двух вариантах: один GIF или pJPEG с задаваемой в реалтайме
> частотой.
> Ессесенно шифрование по 89 или 2004 ГОСТам, можно SSL/DES/AES врубить.
> Более того, VNC это всего лишь один из вариантов транспорта, дамп экрана
> снимается прям в ядре с устройства. Можно пихать эти дампы сплющенные LZMA,
> прям в езернет/ip/http фреймы. А еще есть вариант JPEG-diff - отсылаются
> только изменения от предыдущего фрейма, обратная сборка перекладывается на клиента.

А что ж вы не пользуетесь легендарной сетевой прозрачностью иксов, про которую нам прожужжали все уши?


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Vkni , 28-Май-13 06:55 
> А что ж вы не пользуетесь легендарной сетевой прозрачностью иксов, про которую
> нам прожужжали все уши?

Винды ж, небось.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 19:04 
> снимается прям в ядре с устройства. Можно пихать эти дампы сплющенные LZMA,

Можно. Только LZMA тормозной при сжатии и проц озадачится конкретно.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено all_glory_to_the_hypnotoad , 27-Май-13 22:05 
т.е. нельзя,  на практике. И не даст оно сильно большого прироста сжатия на таких объёмах

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 28-Май-13 07:26 
> т.е. нельзя,  на практике.

Ну я саркастично намекнул павлину что ему не понравится нагрузка на проц :). Если ему делать нех - пусть zpaq жмет. Сжатие будет одно из лучших в мире. А то что там скорость сжатия полметра в час - да подумаешь, эка невидаль...


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 20:33 
> Бойян - у нас такое работает аж с 2006 году. Не GPL и не опен соурс. ФСБ Private License :)

Под Win, что ли. Такие только ей давали. Не может это работать.

Проговорился.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено all_glory_to_the_hypnotoad , 27-Май-13 22:09 
ну это не удивительно, все гос. учреждения просто кладезь идиотизма.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено slay , 28-Май-13 23:35 
итак езернет-фреймы, ip, или http? че вы теплое с мягким перепутали в стремлении показать как оно там у вас огого..

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 10:55 
Крутая штука! Жалко только, что только посмотрщик. Но это дело времени. Так держать!!)))

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Гость , 27-Май-13 11:36 
Изображение можно сделать фоновым и регистрировать клики и перемещение курсора на стороне пользователя.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Andrey Mitrofanov , 27-Май-13 11:43 
> Изображение можно сделать фоновым и регистрировать клики и перемещение курсора на стороне пользователя.

Ждём новостей!

* На основе бblдло-хаб-лицензированного node.js просмотрщика выпущен полнофункцианальный конкурент teamviewer-а
* Зарегистрированы первые взломы клиетов нового полнофункционального...
* Обнаружен троян, имитирующий тимвьюер, на основе полнофункционального...
* Новые еженедельные уязвимости: ..., диирки в коде обработки gif полнофункционального...


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Andrey Mitrofanov , 27-Май-13 11:46 
> * На основе бblдло-хаб-лицензированного node.js просмотрщика

Поправочка: бblдло-MIT-лицензированного

vnc-over-gif / package.json

2 contributors
file 31 lines (30 sloc) 0.597 kb
1 {
2  "name": "vnc-over-gif",
3   "version": "0.0.2",
4   "description": "vnc over gif server",
[...]
24 "license": "MIT",


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Сергей , 27-Май-13 11:54 
Ты-то сам хоть что-нибудь написал?

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Andrey Mitrofanov , 27-Май-13 12:02 
> Ты-то сам хоть что-нибудь написал?

Много постов на опеннет.

---24 "license": "Alright reserved",


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено бедный буратино , 28-Май-13 07:15 
>> Ты-то сам хоть что-нибудь написал?
> Много постов на опеннет.
> ---24 "license": "Alright reserved",

Однажды Мастер Фу сказал заезжему программисту: "В одной строке кода shell-сценария больше духа Unix, чем в десяти тысячах строк на языке С!"

Программист, гордый своими познаниями в С, ответил: "Может ли быть такое? Ведь С — язык, в котором реализовано само ядро Unix!"

На это Мастер Фу ответил: "Это так. Тем не менее, в одной строке shell-сценария больше духа Unix, чем в десяти тысячах строк С!"

Программист выглядел удрученным. "Но ведь через язык С мы познаем просвещенность патриарха Ритчи! Мы уподобляемся человеку с операционной системой и компьютером, который получает непревзойденную производительность!"

Мастер Фу сказал: "То, что ты говоришь, правда. Однако в одной строке shell-сценария больше духа Unix, чем в десяти тысячах строк С".


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 28-Май-13 07:29 
Это был не мастер Фу. Это, вероятно, был FUBAR.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Andrey Mitrofanov , 28-Май-13 09:56 
> Это был не мастер Фу. Это, вероятно, был FUBAR.

На Форумк Опеннет обнаружен Аноним-самозванец, не чтящий классику.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Клыкастый , 27-Май-13 15:39 
смотри-ка... походу привинтить к костылям костыли много желающих.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 17:04 
ЭВМ - это костыли для тех, кто не осилил счеты. Очевидно, что среди пользователей ЭВМ одни любители костылей.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Клыкастый , 27-Май-13 17:32 
> ЭВМ - это костыли для тех, кто не осилил счеты. Очевидно, что
> среди пользователей ЭВМ одни любители костылей.

Ты не считаешь костылями гонять по сети битмапы?


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 18:55 
> Ты не считаешь костылями гонять по сети битмапы?

В конечном итоге, картинка с десктопе - это неизбежно битмап :). Просто передавать его можно по разному. Можно и крайне субоптимально. Вот gif с его 256 цветов и неважной степенью сжатия - знатный костыль.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено vitalif , 27-Май-13 12:55 
Между прочим, в прошивках дешёвеньких IP-камер D-Link есть фича - они умеют отдавать то ли "MJPEG", то ли "MPNG" с помощью бесконечной отдельных кадров по Server-Push :) т.е. работает в Firefox. А в Chrome кстати есть серверпуш?

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 13:40 
у меня zoneminder так с одной китайской камеры поток снимает :)

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 18:53 
> отдавать то ли "MJPEG", то ли "MPNG" с помощью бесконечной отдельных кадров

Это mjpeg. Он есть. Но он отличается хреновой эффективностью соотношением траффика к качеству картинки. Потому что даже дельта-компрессии между кадрами - нет, каждый кадр передается целиком. Соотношение битрейт/качество при этом ни к черту.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 19:18 
>> отдавать то ли "MJPEG", то ли "MPNG" с помощью бесконечной отдельных кадров
> Это mjpeg. Он есть. Но он отличается хреновой эффективностью соотношением траффика к
> качеству картинки. Потому что даже дельта-компрессии между кадрами - нет, каждый
> кадр передается целиком. Соотношение битрейт/качество при этом ни к черту.

Для систем наблюдения - MJPEG гораздо лучше, чем "более эффективные" кодеки. Банально потому что каждый кадр никак не зависит от качества обработки предыдущих, не теряются мелкие детали.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 20:35 
>>> отдавать то ли "MJPEG", то ли "MPNG" с помощью бесконечной отдельных кадров
>> Это mjpeg. Он есть. Но он отличается хреновой эффективностью соотношением траффика к
>> качеству картинки. Потому что даже дельта-компрессии между кадрами - нет, каждый
>> кадр передается целиком. Соотношение битрейт/качество при этом ни к черту.
> Для систем наблюдения - MJPEG гораздо лучше, чем "более эффективные" кодеки. Банально
> потому что каждый кадр никак не зависит от качества обработки предыдущих,
> не теряются мелкие детали.

Всего ничего - звука только нету.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 28-Май-13 07:20 
> Всего ничего - звука только нету.

И соотношение битрейт/качество ни к черту. Так что или видеонаблюдать 320x240x5FPS, или качество сжатия ставить "ой, а что это за квадратики?", или оно канал забьет. Видеопотоком это недоразумение можно считать весьма условно.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 28-Май-13 07:19 
> не теряются мелкие детали.

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

Поэтому получить качественную картинку высокого разрешения с отображением деталей и без искажений - это вообще совсем не про mjpeg. Он обычно может показывать слайд-шоу умеренного разрешения с средненьким качеством. На что-то сверх того ему не хватит бандвиза. Как раз потому что каждый кадр шлется целиком. Даже если вообще не отличается от прошлого кадра ни на бит.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 15:49 
Г-нецо. Никакой поддержки flow control, изменения частоты обновлений в зависимости от ширинцы канала и пропуска кадров там нет - если канал узкий, будете видеть состояние экрана часовой давности. Не нужно.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено EuPhobos , 27-Май-13 16:24 
http://... ... ...&password=
"Может ещё и ключи от квартиры"

Пароль по http только если в тунели ssh.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 18:52 
> поток в виде анимированного GIF-изображения

Про более эффективное сжатие, например webm - этот чудак не слышал? Поточное видео из гифок - это жосска.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 20:37 
>> поток в виде анимированного GIF-изображения
> Про более эффективное сжатие, например webm - этот чудак не слышал? Поточное
> видео из гифок - это жосска.

И чо что GIF? Зато патентами не обложен (кончились они). Бери и юзай.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 28-Май-13 07:22 
> И чо что GIF? Зато патентами не обложен (кончились они). Бери и юзай.

Спасибо, сами такое юзайте как-нибудь. Меня 256-цветная графика сервируемая методом "гланды, через ж...у, автогеном" как-то совершенно не возбуждает.


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 28-Май-13 13:38 
Непонятно, что Вы вкладываете в смысл 256-цветной графики. Представляется, что Вы не знаете, что 256 цветов могут быть в определенной палитре, например, в серой, превращаясь в оттенки (в данном случае это более точное определение). Т.о., 256 цветов (оттенков) может быть не так мало для некоторых задач. Например, для охранного наблюдения или наблюдения за действиями пользователей этого достаточно. И с точки зрения производительности гонять по сети 24-битные картинки просто глупо.

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 29-Май-13 05:20 
> Непонятно, что Вы вкладываете в смысл 256-цветной графики.

То самое, не более 256 цветов в единицу времени. Что намекает что полноцветной графики там в принципе не видать.

> Представляется, что Вы не знаете, что 256 цветов могут быть в определенной палитре,

Знаю, но в палитре только 256 записей. Адаптивная палитра конечно сделает картинку лучше, но до 24 битов этому как пехом до Пeкина.

> Т.о., 256 цветов (оттенков) может быть не так мало для некоторых задач.

Для некоторых, ага.

> Например, для охранного наблюдения или наблюдения за действиями пользователей этого достаточно.

Это вообще не применение а идиoтизм какой-то. А что, какие-то де'Биллы и отдельному вахтеру за это платить готовы? oO

> И с точки зрения производительности гонять по сети 24-битные картинки просто глупо.

С умным сжатием - нормально вполне. Иногда 24-битная битмапа жмется даже лучше, от картинки зависит сильно.


"Просмотрщик VNC, отображающий активность на рабочем..."
Отправлено arisu , 27-Май-13 20:10 
вот браузер-то обрадуется от картинки таких размеров! человек, видимо, не в курсе, что браузер пытается скачать в память ВСЮ картинку, а не «последние пять кадров».

"Просмотрщик VNC, отображающий активность на рабочем..."
Отправлено all_glory_to_the_hypnotoad , 27-Май-13 22:07 
да нормально всё, будет пользоваьель раз в минут 30  перегружать браузер с виндовском, не привыкать

"Просмотрщик VNC, отображающий активность на рабочем..."
Отправлено Аноним , 28-Май-13 07:25 
> что браузер пытается скачать в память ВСЮ картинку,

А что, декомпресанутые и показанные кадры он не дропает? Если это так - можно конкретную такую декомпресс-бомбу изобразить.

Хинт: генерим белую простыню, 100500х100500 пикселей (ну или сколько там гиф позволяет). Даже убогий LZW сожмет такое весьма во много раз. Пхаем 100500 кадров такого формата. Подпихиваем жертве. Смотрим что будет :)


"Просмотрщик VNC, отображающий активность на рабочем..."
Отправлено arisu , 28-Май-13 07:43 
> А что, декомпресанутые и показанные кадры он не дропает?

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

опера, например, ведёт себя забавно: проигрывает гиф заново при каждой активации таба. вебкит и гекон так себя не ведут, но сохраняют ли все кадры — не знаю.

> Хинт: генерим белую простыню, 100500х100500 пикселей (ну или сколько там гиф позволяет).
> Даже убогий LZW сожмет такое весьма во много раз. Пхаем 100500
> кадров такого формата. Подпихиваем жертве. Смотрим что будет :)

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


"Просмотрщик VNC, отображающий активность на рабочем..."
Отправлено Аноним , 29-Май-13 01:20 
> возможно, тут я перегнул: очень давно не видел незацикленых гифов, не уверен,
> как себя ведут браузеры с ними.

Ну да, там несколько вариантов возможно. Сжатый вариант наверное все прихранивают в кэше, но там по идее должны действовать правила на максимальный размер кэша в RAM. Если браузер на это забивает - это баг, по любому. А вот хранят ли они декомпресснутые кадры... с одной стороны это немного разгрузило бы CPU, с другой - на большой гифке это сожрет дофига RAM.

> буду, впрочем, сильно удивлён, если кому-то было настолько нечего делать,
> чтобы писать два варианта кода для обработки гифов — учитывая то,
> что большинство их них зацикленые. надо бы, конечно, глянуть исходники
> вебкита и гекона, но пардон — лень.

Они, конечно, как правило, зациклены, но IIRC
1) Спеки анимированных гифок довольно гибкие (что и позволило гражданам изобразить такой изврат). Насколько я помню, каждый кадр идет с отдельной задержкой, отдельной палитрой и прочая. Для своего времени - вполне культурно и продвинуто сделано, IMHO.

2) Можно и не хранить расжатые кадры а декомпрессить их по мере надобностии, забывая о них потом. Но можно и попытаться соптимизировать на свой зад, храня декомпресснутые версии кадров, да. Вот только эту оптимизацию, если она есть, можно попробовать профлудить старинным фокусом с декомпресс-бомбардировкой, если уж развить идею :).

> опера, например, ведёт себя забавно: проигрывает гиф заново при каждой активации таба.
> вебкит и гекон так себя не ведут,

Они честно выполняют спецификацию, в отличие от еперы. Ну то-есть они играют гифки так как там задано.

> но сохраняют ли все кадры — не знаю.

Зависит от того соптимизили ли они декомпрессию кольцевых гифок в пользу пожирания памяти или нет. Лень смотреть в сорце, да :)

> бомбы давно уже по интернетам бы прыгали.

Вот это кстати не факт. Таких веселых бомб было, есть и наверное еще немало будет. Например, виндовые дрова (ATI, intel) падали в бсод если в браузере пытаютcя показать большую картинку (порядка 99999 х 99999 пикселей). Ее даже не генерили - просто попросили браузер в свойствах элемента растянуть картинку на вот столько. Аналогичная по смыслу атака существовала и на иксы, и как минимум через лису прокатывала. Фокус был в том чтобы запросить дофига памяти. Запрашивалась. И иксы сыпались к черту. В современных версиях или лисы, или иксов сие вроде как заделали.

Например, вот этот PNG - http://apollo.sese.asu.edu/METRIC_PREVIEW/AS15-M-0081/AS15-M... - выносил народу браузер и иксы (warning: весит 251Mb). Сейчас вроде не выносит. Правда памяти жрет, да :)


"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 20:34 
Всего 54 строчки кода. Инновационно!

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Аноним , 27-Май-13 20:35 
Проект достойный Сколково!

"Просмотрщик VNC, отображающий активность на рабочем столе в ..."
Отправлено Andrey Sidorov , 29-Май-13 10:05 
https://github.com/sidorares/vnc-over-gif/wiki/FAQ