Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

articles:2pc1mon [2017/03/09 20:19]
91.108.183.162
articles:2pc1mon [2017/09/05 02:55]
Строка 1: Строка 1:
-====== 2PC1MON ====== 
-<​sub>​{{2PC1MON.odt|Original file}}</​sub>​ 
- 
-====== два компьютера -один монитор,​\\ два монитора -один компьютер ====== 
- 
-%%__%%крис касперски,​ ака мыщъх, a.k.a nezumi, a.k.a. souriz, a.k.a. elraton, no-email 
- 
-**чтобы обустроить свой рабочий стол воистину по-хакерски (всем пионерам на зависть) необходимо разобраться с хитросплетениями кабелей,​ научившись подключать к одному компьютеру несколько мониторов и, наоборот,​ "​запитывать"​ свой основной монитор от нескольких компьютеров,​ объединяя их в домашний кластер или даже группу кластеров,​ перемалывающих пароли со скоростью реактивного истребителя на форсаже.** 
- 
-===== введение ===== 
- 
-Два компьютера — это не роскошь,​ а суровая хакерская необходимость. Мыщъх всегда мечтал о хакерской норе, окруженной по периметру мониторами со змеящимися кабелями,​ в полумраке которых можно было бы ломать программы и точить ништяки,​ однако,​ при воплощении этой идеи в жизнь неожиданно выяснилось,​ что держать на своем рабочем столе более двух мониторов не только неудобно,​ но еще и вредно для здоровья,​ а свои глаза хакер должен беречь,​ ибо они — его важнейший инструмент (после головы,​ конечно). 
- 
-Зачем может понадобиться еще один компьютер?​ Ну мало ли, для экспериментов с альтернативными операционными системами,​ например (QNX, Linux, xBSD, Висла, etc) или удаленной отладки драйверов через Windows Kernel Debugger. Виртуальные машины типа VM Ware в какой-то степени снижают актуальность проблемы,​ позволяя держать на одном компьютере сколько угодно операционных систем,​ но… как же они тормозят!!! К тому же, если потребуется отладить драйвер физического устройства,​ то без прямого доступа к железу тут уже не обойтись. 
- 
-Некоторые операции (обработка цифрового звука и видео) пожирают все системные ресурсы и работать на таком компьютере становится некомфортно,​ а при видео-захвате вообще не рекомендуется запускать посторонние приложения,​ чтобы не терять кадры. Но ведь не сидеть же и не курить в сторонке! Лучше выделить для этой цели отдельный компьютер! 
- 
-Не стоит так же забывать и о том, что хакер должен тестировать свои программы на различных аппаратных платформах:​ от Intel до AMD, включая 32x и 64-разрядные версии,​ в противном случае можно здорово огрести. И хотя существуют эмуляторы AMD x86-64,​ работающие на x86-платформах (взять тот же BOCHS, в просторечии прозванный борщом),​ они все еще содержат множество ошибок… 
- 
-Короче говоря,​ мыщъх агитирует за "​живое"​ железо. Компьютеров должно быть как минимум два (у самого мыщъх'​а— шесть). При нынешних ценах на кремний купить их для хакера не проблема. Вот только где разместить такое количество мониторов?​! Ведь хакеры все-таки живут в норах, а не в хоромах! 
- 
-{{2pc1mon_Image_0.png?​505}} 
- 
-Рисунок 1 хакер,​ со всех сторон окруженный мониторами 
- 
-===== электронные коммутаторы ===== 
- 
-Идея подключения к одному компьютеру нескольких мониторов возникала не вчера, и даже не позавчера,​ а очень давно возникла. С технической точки зрения тут все очень просто. Берем провода с одного,​ двух, трех мониторов и подключаем их к видео-карте через электронный коммутатор — он хоть и подороже механического будет, зато намного надежнее. Аналогичным путем поступаем с мышью и клавиатурой,​ получая в результате настоящий терминал,​ управляющий остальными компьютерами словно штурвалом. 
- 
-{{2pc1mon_Image_1.jpg?​553}} 
- 
-Рисунок 2 обитель мыщъх'​а:​ два монитора — четыре компьютера 
- 
-Обустроив таким образом свое рабочее место мы можем "​общаться"​ практически с неограниченным количеством компьютеров (в том числе и морально устаревших,​ используемых в качестве плацдарма для игрушек времен MS-DOS). Очень удобно!!! К тому же совсем недорого. Порядка сотни долларов или около того. Спрашивайте в аптеках,​ тьфу, в компьютерных салонах **KVM-stitch'​**и,​ получившие свое название по первым трем буквам:​ Keyboard (Клавиатура),​ Video (Видео) и Mouse (Мышь). 
- 
-В зависимости от модели количество обслуживаемых "​терминалов"​ варьируется от двух (в самых простых вариантах) до шести (больше шести мыщъх еще не встречал,​ хотя не видит никаких теоретических ограничений,​ препятствующих этому). Максимальная длина кабеля,​ между компьютеров и свичем обычно составляет десять (реже сто) метров,​ чего для наших целей более чем достаточно. При желании можно рулить компьютером,​ установленным в соседней комнате или даже вынесенном на балкон для уменьшения шума (особенно это актуально для домашних серверов,​ работающих в круглосуточном режиме). 
- 
-{{2pc1mon_Image_2.jpg?​552}} 
- 
-Рисунок 3 KVM коммутатор за работой 
- 
-Более совершенные (а, значит,​ и дорогостоящие) устройства (с гордым названием **коммутаторы**) несут на своем борту процессор,​ сетевую карту, буферную память и прочие электронные компоненты,​ позволяющие закодировать аналоговый сигнал и передать его в цифровой форме по Ethernet сетям, что существенно упрощает прокладку кабелей и значительно увеличивает их предельно допустимую длинную,​ позволяя управлять компьютерами хоть их соседней комнаты,​ хоть из другого города. Более удобного средства для управления офисным компьютерами из своего дома, пожалуй,​ и не найти. 
- 
-Довольно хорошо зарекомендовала себя фирма Minicom, предлагающая трудовому народу две вполне удачные модели — PhantomDial-UpRemoteAccess и Smart IP Extender Switch Over IP. Первая стоит в районе $800, вторя же — $3500. Вот и думай стоит ли это удовольствие таких денег или нет, особенно,​ если речь идет не о промышленном использовании,​ а домашней компьютерной системе. 
- 
-{{2pc1mon_Image_3.jpg?​553}} 
- 
-Рисунок 4 внешний вид типичного коммутатора 
- 
-Но деньги это еще что!!! KVM-switch'​и в силу чисто физических ограничений едва-едва держат картинку 800x600 60(75) Hz,​ 1280х1024/​60 Hz это уже вертикальный предел,​ да и тот весь дрожащий,​ малоконтрастный и замутненный. Коммутаторы дают намного более качественную картинку (цифровой сигнал как ни как), но редко кто из них может похвастаться поддержками режимов свыше 800x600. 
- 
-Короче говоря,​ для управления сервером вполне сойдет,​ но для полноценной работы явно не годится. Впрочем,​ для тех, чьей превалирующей средой обитания является консоль,​ сказанное не относится. Даже самые дешевые switch'​и держат консольные режимы вполне конкретно без заметных искажений. 
- 
-===== >>>​ врезка полезные ссылки ===== 
- 
-  - **Remote Insight "​Lights Out" boards**: 
-    - обзор систем удаленного управления (на английском языке) http://​www.paul.sladen.org/​lights-out/​riloe.html;​ 
-  - **Remote Insight Lights-Out Edition II**: 
-    - описание платы удаленного управления от Hewlett-Packard с возможностью заказа по Интернету (на английском языке):​ __http____://​____h____18004.____www____1.____hp____.____com____/​____products____/​____servers____/​____management____/​____riloe____2/​____server____-____slot____-____matrix____.____html__;​ 
-  - **PC Weasel 2000**: 
-    - описание альтернативной платы удаленного управления,​ микрокод который распространяется по открытой лицензии (на английском языке):​ http://​www.realweasel.com/​intro.html;​ 
-  - **http://​www.kvms.com**:​ 
-    - технические характеристики огромного количества систем удаленного управления (преимущественно KVM-коммутаторов,​ на английском языке);​ 
-  - **Raritan IP-Reach TR364**: 
-    - описание хорошо KVM-коммутатора TR364 (на английском языке): ​ http://​www.42u.com/​telereach_bk.htm;​ 
-  - **Архитектура ввода-вывода персональных ЭВМ IBM PC**: 
-    - электронная версия книги, посвященной устройству IBM PC, которую настоятельно рекомендуется прочитать перед разработкой собственной системы удаленного управления (на русском языке):​ ; [[http://​redlib.narod.ru/​asmdocs/​asm_doc_07.zip|http://​redlib.narod.ru/​asmdocs/​asm_doc_07.zip]];​ 
-  - **Ralf Brown Interrupt List**: 
-    - электронный справочник по всем прерываниям,​ портам ввода/​вывода,​ "​волшебным"​ адресам памяти,​ включая нестандартные расширения и недокументированные возможности (на английском языке) [[http://​www.ctyme.com/​rbrown.htm|http://​www.ctyme.com/​rbrown.htm]];​ 
-===== два входа одного монитора ===== 
- 
-Практически все современные LCD-мониторы имеют два входа: аналоговый (D-SUB), оставленный для совместимости с устаревшими видео-картами,​ и цифровой (DVI-D), ориентированный на видео-карты нового поколения. Некоторые мониторы автоматически определяют к какому именно входу подключена видео-карта,​ но большинство остальных имеют специальный селектор каналов,​ как правило,​ вынесенный на отдельную панель. Нажатием всего одной кнопки мы можем переключаться с аналогового входа на цифровой и тут же возвращаться обратно. 
- 
-{{2pc1mon_Image_4.jpg?​552}} 
- 
-Рисунок 5 два выхода одного монитора 
- 
-А что если взять два компьютера,​ поставить их рядышком и подключить к одному монитору?​ Первый — по аналоговому входу, второй — по цифровому. Сложнее справиться с мышью и клавиатурой. Ну, вообще-то,​ две клавиатуры легко размещаются на столе и смотреться весьма сексуально,​ к тому же, поскольку и мышь, и клавиатура представляют собой PS/2 устройства,​ то их без особой опаски можно перетыкать прямо на лету, не боясь чего-нибудь спалить. Если перетыкать не интересно,​ пожалуйста,​ к нашим услугам самый дешевый KVM-switch, который только найдется на рынке. 
- 
-{{2pc1mon_Image_5.jpg?​552}} 
- 
-Рисунок 6 простой механический селектор,​ переключающий мышь с клавиатурой (без видео) купленный на радио-рынке за $6. 
- 
-Достоинство предложенной технологии в исключительно высоком качестве картинке (фактически,​ мы смотрим монитор через его "​родной"​ интерфейс),​ а недостаток — в ограниченной длине соединительных кабелей (всего несколько метров) и невозможностью подключения третьего монитора. То есть, если у нас есть четыре компьютера,​ то без двух мониторов все равно не обойтись. Но, согласитесь,​ два монитора это все-таки не четыре. 
- 
-К тому же, выбор одного способа не исключает использование другого. Допустим,​ у нас имеется два основных компьютера,​ подключенные к одному монитору через аналоговый и цифровой входы. Остальные компьютеры можно подключить либо через коммутаторы к тому же самому или другому монитору,​ смирившись с низким качеством картинги,​ или же выделив для них еще один монитор с прямым подключением,​ если падение качества недопустимо. 
- 
-===== >>>​ врезка посуду мыть не будем!!! ===== 
- 
-Вообразите себе семью, где муж и жена — оба программисты и не прикладники какие-нибудь,​ а самые настоящие хакеры,​ втыкающие в мониторы все дни и ночи напролет. Мониторы естественно,​ находятся в различных плоскостях времени-пространства,​ разделенного этажеркой для создания рабочей атмосферы полного уединения. Но это — в теории. На практике же им все равно приходится взаимодействовать друг с другом самым непотребным образом. То один хочет показать,​ что твориться у него на экране,​ то другой. И форсировать книжные завалы,​ рискуя спотыкнуться о распечатки — удовольствие не из приятных. Намного проще (и практически) соединить мониторы крест-накрест,​ чтобы в любой момент каждый мог посмотреть,​ чем сейчас занимается другой. 
- 
-Кстати говоря,​ это можно сделать и тайно. В целях шпионажа за своей подопечной. Чем она там занимается?​ 
- 
-{{2pc1mon_Image_6.jpg?​553}} 
- 
-Рисунок 7 рабочее место мыщъих'​и 
- 
-===== домашний кластер своими руками ===== 
- 
-Имея в своем распоряжении несколько компьютеров (большей частью бесцельно простаивающих и впустую транжирящих компьютерное время),​ возникает заманчивая идея объединить их в кластер,​ который обойдется намного дешевле покупки многопроцессорной машины. К сожалению,​ операционные системы семейства Windows позволяют распараллеливать между "​соседними"​ компьютерами только специальным образом написанные приложения,​ поддерживающие механизм удаленного вызова процедур — он же Remote Procedure Call или, сокращенно,​ RPC. 
- 
-Microsoft Platform SDK (распространяемый бесплатно) и MSDN (прилагаемый к компилятору Visual Studio) содержат множество примеров RPC-программ,​ исполняющихся на нескольких компьютеров и обменивающимися полученными данными с центральным терминалом (условно называемом сервером). Вот только к реальной жизни они не имеют никакого отношения. 
- 
-В реальной жизни нам приходится иметь дело с уже написанными программами,​ механизма RPC не поддерживающими и даже при наличии исходных текстов (а откуда они у нас), поддержку RPC за просто так не получится. Но, если хорошенько подумать головой,​ и немножко поработать руками,​ можно найти другой путь, которым,​ мы, собственно говоря,​ и пойдем. 
- 
-Допустим,​ нам необходимо пережать цифровое видео, добытое с DVD. Сжатие в XVID/​DivX/​x264 с максимальным качеством даже на самых быстрых компьютерах занимает десятки часов и при этом ни один популярный кодек не поддерживает кластеризации. Наша задача заставить его исполняться на N компьютерах,​ причем,​ это не обязательно должны быть компьютеры идентичной конфигурации с одинаковым быстродействием. Главное,​ чем больше N, тем лучше для нас. 
- 
-{{2pc1mon_Image_7.png?​552}} 
- 
-Рисунок 8 внешний вид бесплатного видео-редактора AVIDemux 
- 
-Берем любой видео-редактор (например,​ горячо любимый мыщъх'​ем бесплатно распространяемый AVIDemux), режем исходный файл на куски с размером пропорциональным мощности наших компьютеров,​ и сжимаем каждый видеофрагмент независимо от всех остальных,​ а полученные пережитки склеиваем на самом мощном компьютере (благо этом процесс занимает совсем немного времени). 
- 
-Аналогичным образом обстоят дела и с перебором паролей. Практически все хакерские ломики позволяют задавать интервал перебора,​ чем мы с успехом и воспользуемся,​ раскидав переборщики по сети. Причем,​ совсем необязательно делать это вручную. Достаточно написать несложный скрипт,​ генерирующий пакетный файлы, вызывающие переборщики с заданными параметрами. 
- 
-Так же можно ускорить дизассемблирование и компиляцию. Поскольку,​ большинство проектов состоят более чем из одного файла, то процедура их сборки элементарным образом распараллеливается между несколькими компьютерами. 
- 
-===== заключение ===== 
- 
-Естественно,​ возможности домашних "​кластеров"​ на этом не ограничиваются. Главное — фантазию иметь! А задействовать пустующие вычислительные мощности — не проблема! 
- 
-===== >>>​ врезка один компьютер — два монитора! ===== 
- 
-Иногда приходится решать прямо противоположную задачу,​ подключая к компьютеру сразу два монитора. Один (стоящий на столе) — для работы,​ другой (прикрученный к потолку над кроватью) — для просмотра видео и экзотических фильмов,​ способствующих бурному занятию сексом (главное,​ чтобы в момент "​X"​ монитор не отклеился и не прервал весь процесс). 
- 
-Как это можно сделать?​ Технически проще, надежнее,​ качественнее и дешевле нарыть видео-карту с двумя выходами. Они бывают разные:​ либо оба аналоговые,​ либо один аналоговый,​ а другой цифровой. Карты с двумя цифровыми выходами в поле зрения мыщъх'​а еще не попадали,​ хотя, он вполне допускает их существование. 
- 
-Казалось бы — что может быть проще?​! Втыкаем разъемы в нужном порядке (в ненужном они ни за что не воткнутся — благо производители позаботились). Включаем компьютер и… на первом (основном) мониторе все ок, на втором же — либо скучный черный экран, бездонный как ночное небо, либо виден рабочий стол, окна приложений,​ а вместо видео — фиолетовый квадрат. Что это за беда такая и как ее побороть?​ 
- 
-Хорошо,​ карта имеет два выхода,​ но не знает как ими распорядится. За это отвечает драйвер. Второй монитор может быть совершенно независим от первого и выдавать абсолютно другую информации. Соответствующие API-функции появились уже давно (кажется,​ начиная с Windows 98),​ однако,​ мыщъх'​у не известно ни одной популярной программы,​ в которой они были бы задействованы. 
- 
-Другой вариант — поставить два монитора рядом, расщепив Рабочий Стол пополам и увеличив тем самым горизонтальное разрешение вдвое. Дополнительная программная поддержка в этом случае не требуется (достаточно драйвера и видео-карты),​ однако работать с таким "​чудом техники"​ без содрогания невозможно и потому оно идет лесом (впрочем,​ широкоформатные фильмы на нем довольно приятно смотреть,​ естественно,​ с расстояния не меньше метра). 
- 
-Вариант номер три — клонирование мониторов:​ то, что видно на одном мониторе,​ будет видно и на другом. За исключением,​ пожалуй,​ видеофильмов. А все потому,​ что для увеличения производительности,​ большинство видеоплееров использует так называет режим оверлея (overlay mode), в котором видео-поток проходит "​транзитом"​ сквозь карту прямо на монитор,​ минуя видеопамять и другие узлы, участвующие в клонировании. 
- 
-{{2pc1mon_Image_8.png?​553}} 
- 
-Рисунок 9 выбор режима "​клонирования"​ мониторов в драйвере видео-карты (на примере MVIDIA) 
- 
-Поборот ситуацию можно двумя путями — либо приобрести карту, поддерживающую полноценное клонирование на аппаратном уровне без помощи со стороны драйвера (например,​ Matrox Millenium G450), либо перевести видеоплеер в RGB режим. К сожалению,​ далеко не все видеоплееры умеют это делать. Вот например,​ BSPlayer и Mplayer – умеют, а штатный Microsoft Media Player – нет. 
- 
-Покажем,​ как форсировать RGB-режим в BSPlayer'​е. Это просто! В диалоговом окне "​Preferences"​ выделяем пункт "​Video"​ (расположен слева),​ затем переходим к вкладке "Video Rendering"​ (справа),​ и там, в "​Rendering mode" находим нужный нам "​Internal Render RGB mode", после чего жмем "​ОК"​ и с удовлетворением смотрим фильм на двух мониторах сразу (внимание:​ RGB-режим слегка замедляет производительность и может приводить к нежелательным искажениям цветов,​ но… тут уж или дешевая карта с программным клонированием и невысоким качеством или будьте любезны раскошелится на нормальное железо). 
- 
-{{2pc1mon_Image_9.png?​553}} 
- 
-Рисунок 10 формированный перевод видеоплеера BSPlayer'​а в RGB-режим для просмотра видео на двух мониторах сразу 
- 
-