Спутник для всей семьиGenocide (genocide@xakep.ru) Хакер, номер #113, стр. 113-122-1 Вынос кардшаринга на телевизор
Начал я тут баловаться спутниковым кардшарингом. Зарегистрировался на шаринг сервере, настроил плагин к софту и получил добрую сотню каналов. Поначалу было прикольно, потом наскучило. И нарисовалась еще одна проблема – родственники. Вот уж кто конкретно подсел на спутник, так это мама и бабушка. Стали ходить вокруг моего компьютера и плотоядно на него поглядывать. Дабы оградить цифровое святилище от назойливых любителей телевидения без рекламы, пришлось осуществлять отвязку зомбоящика от компьютера. Cпутниковый кардшаринг – что это?
В «][акере» уже была статья про шаринг, поэтому я не буду подробно все расписывать, а лишь напомню принцип. Суть в том, что сигнал со спутника поступает кодированный, а вместе с ним идет закодированный ключ для дешифровки. Смарткарта, вставляемая в ресивер, осуществляет декодирование ключа и декодированным ключом уже происходит расшифровка видеопотока. Ключ меняется каждые десять секунд, поэтому подделать смарткарту чертовски сложно, но можно расшарить карту через интернет или локальную сеть и заставить ее декодировать ключи с чужих потоков. Таким образом, одна легально купленная карта может обслуживать до сотни клиентов. Разумеется, это незаконно, но шаринг провайдеры неплохо шифруются, а со стороны поставщика спутникового телевидения это очень сложно отследить. Закупка девайсовИтак, что же нужно, чтобы спутник можно было смотреть на телевизоре? Ответ: ресивер. С одним лишь отличием – он должен поддерживать шаринг. Поэтому всякие магазины бытовой техники я отбросил сразу и подорвался в сторону радиобарахолки. Выбор тут велик: от простеньких OpenBox до легендарного Dream Box, который был бы лучшим вариантом для шаринга. Этот могучий аппарат, построенный на процессоре Power PC, имеет на борту Linux и может служить чем угодно, хоть спутниковым роутером, хоть шаринг сервером.
На Dream Box можно поднять и аппаратный шаринг клиент, благо в него можно воткнуть витую пару без каких-либо заморочек. Всем он хорош, кроме одного – цены. Выкладывать почти десять тысяч рублей за примочку к телевизору я был морально не готов. Поэтому, побродив по рынку, откопал на одном из лотков OpenBox 300й серии. Стоил он недорого, порядка трех тысяч рублей. Поначалу мне пытались впарить легальный OpenBox, не имевший на заднице RS232 разъема, но, порыскав еще немного, я нашел правильный аппарат с СОМ-портом. Там же я купил две СОМ розетки и несколько метров пятижильного телефонного провода. Собираем системуКак собирать? Для начала нужно подключить коаксиальный кабель от антенны к ресиверу. Делать это нужно при отключенном напряжении, иначе есть риск спалить либо ресивер, либо приемник в антенне.
Следующий шаг – изготовление кабеля для передачи ключей от компа к ресиверу. Паяется он по схеме нуль модема от Rx в Tx. Схема кабеля показана на рисунке. Первый вывод одного разъема я соединил с первым выводом второго разъема. Второй вывод соединил с третьим. Третий вывод – с вторым выводом другого разъема. Ну и соединил проводом контакты номер пять. В итоге, получилось:
Плотнее уложил провод в корпус и закрутил разъем на место. Воткнул разъем в свободный СОМ-порт на компе, а другой конец подключил к разъему ресивера. Подключал все при отключенном оборудовании, так как при отсутствии электрической развязки между ресивером и компом при выдергивании провода на горячем подключении реально спалить порт на ресивере. На этом электрическая часть закончилась. Осталось настроить соответствующий софт. MPCS – оружие кардшарера!Одной из самых популярных и, наверное, лучших программ для шаринга является MPCS. Она представляет собой консольную тулзу, распространяется в исходниках и существует как под винду, так и под линух. Я скачал эту чумовую программу где-то на форуме, посвященном кардшарингу, и заботливо выложил на диск (поищи там). Настройка заключается в элементарном добавлении нужных параметров в конфигурационные файлы. Обычно достаточно настроить порт и сервер.
Так, я залез в файл mpcs.conf: [global] Nice = -1 #LogFile = log #LogFile = /dev/tty ClientTimeout = 5 LogFile = stdout [serial] Device = tuner@/dev/ttyS0?delay=1&timeout=300 Строка «Device = tuner@/dev/ttyS0?delay=1&timeout=300» означает, что ресивер у меня сидит на порту COM1, это ясно из параметра «ttyS0». Для СОМ2 это будет «Device = tuner@/dev/ttyS1?delay=1&timeout=300» и т.д. Остальные параметры определяют задержку порта и скорость обмена. Их я оставил по дефолту, но вообще, если что-либо не заработает, ими можно побаловаться. Следующим конфигом стал mpcs.server. В нем происходит настройка на конкретный шаринг сервер. [reader] Label = newcamd Protocol = newcamd Key = 0102030405060708091011121314 Device = kardsharing-super-server.ru,10000 Account = Genocide_login,my_k00l_password Fallback = 0 Group = 1 ReconnectTimeout = 20 В разделе Label просто указывается метка коннекта, можно вбить туда несколько шаринг серверов. Пункт Protocol указывает, по какому шаринг протоколу будет общение с сервером. Стандартом тут стал newcamd, но бывают и другие протоколы, например, camd35 для cs357x-сервера. Тип протокола сообщает шаринговый сервер при подключении. Здесь сервер, конечно же, вымышленный. Параметр Key я оставил как есть. Стандартно там «0102030405060708091011121314». Device – это непосредственно сервер, к которому происходит подключение; через запятую я вписал название сервера (можно просто его IP) и номер порта. Эти данные мне сообщил шаринг сервер при подписке. Account – ну, тут все ясно: мой логин и пароль, естественно, липовый :). С остальными параметрами я не развлекался. По дефолту обычно все работает нормально. Настройка ресивераЯ неспроста купил ресивер OpenBox. Это агрегат с секретом! Если нажать на пульте по очереди кнопки «menu» – «1» – «1» – «1» – «7», то появится скрытое меню «Редактор ключей». В нем есть пункт «Шаринг». В разделе «No. CA SYS» я выставил «0500», а в разделе «Index Provider» – «02 07 10». Эти параметры мне сообщил провайдер: по умолчанию были выставлены такие же, но, видимо, встречаются различия. Выставив все значения, я запустил MPCS и стал разглядывать логи. После стандартной инфы пошел лог работы: 2008/04/06 20:06:50 1420 s >> STREAMBOARD << mp-cardserver started 2008/04/06 20:06:50 1420 s newcamd: disabled 2008/04/06 20:06:50 1420 s radegast: disabled 2008/04/06 20:06:50 1420 s logger started (pid=1564) 2008/04/06 20:06:50 1420 s resolver started (pid=1580, delay=30 sec) 2008/04/06 20:06:50 1420 s proxy started (pid=1600, server=******.***** 2008/04/06 20:06:50 1420 s anti cascading: disabled 2008/04/06 20:06:50 1420 s serial: initialized (pid=1616, auto@/dev/ttyS0 2008/04/06 20:06:50 1600 p02 proxy ******.*****:10000 newcamd525 2008/04/06 20:08:09 1616 c01 detected dsr9500-extended type receiver 2008/04/06 20:08:09 1616 c01 plain dsr9500-client 127.0.0.1 granted 2008/04/06 20:08:10 1600 p02 server ******.*****:10000 caid: 0500 2008/04/06 20:08:17 1616 c01 tuner (0500&020710/5015/4A:97FA): found (774 ms) 2008/04/06 20:08:27 1616 c01 tuner (0500&020710/5015/4A:97FB): found (895 ms) 2008/04/06 20:08:37 1616 c01 tuner (0500&020710/5015/4A:97FA): found (936 ms) 2008/04/06 20:08:47 1616 c01 tuner (0500&020710/5015/4A:97FB): found (828 ms) 2008/04/06 20:08:57 1616 c01 tuner (0500&020710/5015/4A:97FA): found (699 ms) Обрати внимание на задержку до получения ключа. Если она превысит пять секунд, изображение может начать срываться и дергаться. Задержки зависят от шаринг провайдера, а точнее – от прохождения пакетов до его сервера. Если скорость стабильно низкая, то лучше поискать другого провайдера, благо их сейчас стало, как грязи. Долой компьютер!Вскоре надоело и это. Не хотелось постоянно держать комп работающим – я часто уезжаю и предпочитаю его выключать. Задумался о способах отвязки от компьютера. Пошарив по инету и специализированным форумам, я наткнулся на девайс под названием LanCom Box. Это мост, связывающий СОМ-порт ресивера с шаринг сервером через Ethernet. Однако штука оказалась весьма дорогой и меня жаба задавила ее покупать (тем более, по слухам, она может работать не везде – какие-то проблемы с VPN). Вскоре обнаружилось еще одно удачное решение – перешитый ADSL-модем. Вообще, большинство ADSL модемов, работающих в режиме роутера (модем подключается к компьютеру посредством витой пары через сетевую карту), представляют собой довольно мощные компьютеры под управлением Linux-подобной операционной системы. Я начал копать в эту сторону.
Оказывается, в ADSL-роутер DLINK-500T можно залить измененную прошивку, основанную на uLinux и установить MPCS. Правда, есть одно маленькое «но» – у DLINK-500T изначально нет RS232. Потрошим роутерПошерстив по форумам, я узнал, что перепрошивке под кардшаринг поддаются почти все роутеры серии Dlink-500Т (кроме тех, у которых память фирмы Intel). Вскрываю крышку, внимательно оглядываю плату роутера… Мне повезло – память Samsung. Хотя нет порта RS232. Нет порта? Ну и черт с ним! Сейчас приделаю! Что это за торчащие штырьки возле ряда светодиодов? Зовутся «JP2». Беглое протыкание осциллографом показало, что это самый обычный трехвольтовый UART, превращаемый в RS232 посредством широко известной микросхемы конвертера MAX3232. По-быстрому в Sprint Layout развел печатную плату для конвертера. В принципе, она настолько простая, что ее можно сделать и навесным монтажом, припаяв детали друг к другу.
Все, что мне потребовалось, – штекер RS232, микросхема MAX3232 да четыре конденсатора на один микрофарад. Конденсаторы можно припаять напрямую на ножки микросхемы, благо они маленькие, а Rx и Tx пропустить через входы и выходы MAX3232, как показано на схеме, и припаять к штырькам. Если держать плату светодиодами вверх, разъемами вниз и деталями к себе, то распиновка штырьков слева направо такая:
Я же, поскольку в совершенстве владею лазерно-утюжным методом изготовления печатных плат, предпочел выполнить все печатным монтажом. Получилось компактно и красиво. Утаивать разводку я не намерен, а посему она выложена на диск. Также переходник можно купить на радиобарахолке или в радиомагазине. Зовется он «TTL-RS232 адаптер». Внутри тот же самый MAX232 только в отдельном корпусе. Такая штука иногда идет в комплекте с некоторыми кассовыми аппаратами. Вправляем роутеру мозгиПоскольку изначальная прошивка роутера никуда не годится, будем ее менять! Нам нужна прошивка от Mcmcc. Я скачал ее с сайта http://mcmcc.bat.ru (но тебе достаточно просто открыть диск). Перешиваем роутер. Для этого я зашел в меню роутера, набрав в адресной строке браузера его IP адрес. Ввел пароль администратора (по дефолту Login «Admin», password «Admin»). Продрался через меню к странице обновления прошивки – Tools -> Update Gateway. Указал путь к распакованному файлу прошивки и нажал кнопку «Update Gateway». После чего перезагрузил модем, опять зашел в меню и в разделе «Status Information» убедился в том, что прошивка встала на место. Дальше потребовалось переразметить память и высвободить место для MPCS. Для этого я зашел в роутер черезе Telnet, набрав в командной строке «telnet 192.168.1.1». Роутер приветствовал меня и предложил залогиниться. Логинился я, естественно, как root с паролем Admin. Ответом мне было приветствие BussyBox: BusyBox on router login: root Password: ********************************************************* * ADSL LAN ROUTER D-Link DSL-500T (McMCC) * ********************************************************* BusyBox v0.61.pre (2007.01.15-21:12+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # Затем я набрал в командной строке «cat /proc/ticfg/env», и модем отрыгнул в консоль много всего, в том числе и таблицу разметки памяти: mtd0 0x90083000,0x903f0000 mtd1 0x90010090,0x90083000 mtd2 0x90000000,0x90010000 mtd3 0x903f0000,0x90400000 mtd4 0x90010000,0x903f0000 Ввел в консоли: echo "mtd5 0x901F0000,0x90200000" > /proc/ticfg/env echo "mtd4 0x90020000,0x901F0000" > /proc/ticfg/env echo "mtd0 0x90097000,0x901F0000" > /proc/ticfg/env Потом перезагрузил роутер (команда «reboot») и проверил (команда «cat /proc/ticfg/env»), произошло ли перераспределение памяти. Скачал себе небольшой карманный FTP-сервер tFTPd32.exe. Создал в корне диска «С:\» каталог «С:\LAN» и сложил туда все барахло, а конкретно – настроенный MPCS и файлы FTP-сервера. В каталоге оказалось следующее файло: mpcs.mem mpcs.guess mpcs.ac mpcs.srvid mpcs.conf mpcs.server mpcs.user mtd5.tar tftpd32.exe Рабочий MPCS конфиг для заливки в роутер приведен на врезке. После чего я запустил tftpd32.exe и опять полез через telnet в роутер. Забил следующую последовательность команд: cd /var/tmp tftp -g -l mtd5.tar 192.168.1.2 tar -xf mtd5.tar cd mycfg tftp -g -l mpcs.conf 192.168.1.2 tftp -g -l mpcs.server 192.168.1.2 tftp -g -l mpcs.user 192.168.1.2 cd .. tar -cpf m.tar mycfg gzip m.tar cfgsave m.tar.gz reboot Это вызвало заливку конфигов MPCS в роутер с моего компа (192.168.0.2). Далее я воткнул провод, соединяющий RS232-роутер с RS232 портом ресивера. В разъем Line воткнул ADSL, а LAN подключил к компу по его типовой схеме. Как только модем подключился к ADSL линии, включил телевизор и попробовал посмотреть зашифрованный канал. Работает! А если бы у меня не было инета?Выход есть! Если в дом не подведена локальная сеть или отсутствует возможность подключить ADSL (я сам живу далеко за Уралом, проблема инета стоит остро), то спасет GPRS. Расход трафика при просмотре спутникового телевидения просто мизерный. Суди сам, раз в десять секунд ресивер запрашивает через шаринг сервер очередной ключ. Сам ключ занимает считанные байты – плюс заголовок протокола newcamd с логином и паролем. Короче, и килобайта не наберется. А для аппаратного решения проблемы можно купить специально прошитый сотовый телефон да найти Java программку, обрабатывающую ключи. Но это не самый удачный метод, его можно посоветовать лишь для экстремального шаринга вдали от цивилизации. ОтветственностьСпалить клиента кардшаринг сервера очень трудно, но иногда их ловят и сажают. Так что если юзаешь кардшаринг, то стоить задуматься о том, что однажды сапоги могут постучаться и в твой дом. Так что подумай, может легальная подписка на услуги спутникового телевидения и спокойствие (как бонус) в итоге обойдутся дешевле? Да и нет там ничего интересного, на этих каналах. Фильмы проще и удобней смотреть на DVD, порнухи навалом в интернете, а всякие образовательные каналы, вроде Дискавери, намертво убиты американизированной подачей материала, рассчитанной на даунов. Постоянное повторение одних и тех же фактов в стиле телепузиков доканает кого угодно. Однако забрасывать спутниковые технологии я бы тоже не рекомендовал. Тема очень интересная, в ней можно разбираться пол жизни. Плюс непередаваемый кайф от перехвата инфы, не предназначенной для широкого просмотра. Я даже не вспоминаю про фишинг, это пошло. Куда веселей, например, перехватить техническую трансляцию какого-нибудь футбольного матча, которую телевизионщики гонят со спутника на землю по служебным каналам. mpcs.conf [global] Nice = -20 LogFile = /dev/null ClientTimeout = 5 [monitor] Port = 988 NoCrypt = 192.168.0.0-192.168.255.255 AULow = 120 MonLevel = 4 [newcamd] Key = 0102030405060708091011121314 Port = 50000@0500:020710 [cs378x] Port = 50002 [camd35] Port = 50001 #[serial] #Device = tuner@/dev/ttyS0?delay=1&timeout=300 mpcs.user [account] User = tuner Pwd = tuner Group = 1 [account] User = monitor Pwd = monitor Group = 1 mpcs.server [reader] Label = newcamd Protocol = newcamd Key = 0102030405060708091011121314 Device = *******,***** //тут нужно ввести свой шаринг-сервер и порт Account = *******,***** //А тут вводится логин и пароль к шаринговому серверу. CAID = 0500 IDENT = 0500:020710 Fallback = 0 Group = 1 ReconnectTimeout = 20 BusyBox Что это за зверь? Да это что-то вроде микролинуха, точнее набор UNIX-утилит командной строки, запихнутый в один файл для экономии места. Преимущества комплекта перед обычным линухом заключаются в предельно малом занимаемом объеме и низких системных требованиях. Основное применение BusyBox – встраиваемые системы и разного рода умные устройства, например роутеры. BusyBox – модульная система. В процессе компиляции можно включать или исключать ее компоненты, точно настраивая под нужды системы. Модемный приколЕсли в DLINK-500T в LAN-разъем воткнуть витуху, в которой есть инет, а на ADSL-вход забить вообще, то MPCS также будет работать! Используя фичу, можно сделать шаринг клиент на любом LAN-соединении. В том же роутере можно настроить VPN-соединение и использовать его для подключения к провайдерам, поставляющим интернет через домашние локальные сети.
На диске лежат MPCS с конфигами, прошивки для роутера, а также схемы и печатные платы переходника. |