Skype — один из самых небезопасных мессенджеров по объективным причинам. Одна из них — обфусцированный бинарный файл, чтобы затруднить реверс-инжиниринг. Корпорация Microsoft отказывается предоставить исходный код для аудита и проверки специалистами по безопасности, последняя проверка проводилась в 2005 году.
Несмотря на все риски, многие люди вынуждены использовать клиент Skype.
Закрытость протокола и официального клиента вынудила активистов пойти на нарушение закона DMCA и принудительно деобфусцировать бинарный код клиента.
В рамках проекта Skype Open Source в июне 2011 года был проведён обратный инжиниринг протокола Skype 3.8.
В марте 2012 года был опубликован деобфусцированный бинарный клиент оригинального Skype 5.5 со снятой защитой от отладки.
Skype 5.5 представлял собой некий гибрид графического интерфейса, написанного на Delphi, и встроенных библиотек DLL с «ядром». Ядро программы — полностью независимая структура на уровне бинарного кода: блоки кода, блоки данных, импорт. Если судить по наличию следов библиотек VC, то для компиляции программы использовался компилятор Visual C++.
Сейчас найти тот клиент и исходные коды непросто, потому что по требованиям DMCA хостеры удалили оригинальный блог, а также почти все копии клиента
skype55.zip
, которые разошлись по Сети.Прошли годы, корпорация Microsoft перевела пиринговую сеть супернодов Skype в свою собственную облачную сеть Skype Network, на которую перешла в последних версиях клиента, и немного изменила протокол: изменения касались в основном добавление DH-384 обмена ключами до старта RC4 шифрования. Активистам пришлось начинать работу заново — и проводить реверс-инжиниринг нового протокола.
Разработчики снова добились своего. 1 сентября 2016 года в новом блоге Skype Open Source 2 опубликована радостная весть о выходе первого в мире самодельного свободного клиента, совместимого с сетью Skype Network. Исходный код клиента пока не удалён с Github. Клиент ограничен передачей только текстовых сообщений.
Клиент Epycs Messenger написан на чистом Си, снабжён простым графическим интерфейсом на .NET 4.0. Соответственно, для установки требуется наличие среды .NET 4.0. Проект загружается и компилируется в Visual Studio 2010. Программа работает только под Windows. Автор говорит, что для портирования под Linux нужно слегка пошаманить с сокетами.
Ссылки на скачивание бинарников:
http://epycs.ru/files/EpycsMessenger2_20160901.zip
https://yadi.sk/d/xvKhmImdugThn
http://dfiles.ru/files/ob1kzcc1x
Исходный код под LGPL 3.0:
http://epycs.ru/files/EpycsMessenger2_20160901_src.zip
https://yadi.sk/d/V_IWJT-fugvND
http://dfiles.ru/files/ryh285mue
На тестовой машине не удалось завершить процедуру импорта контактов
Автором программы является Ефим Бушманов. Он же написал предыдущие версии деобфусцированного клиента Skype и был автором первого блога Skype Open Source.
Несмотря на предположительное нарушение DMCA, предлагается коммерческая лицензия на Epycs Messenger. Продолжается также сбор пожертвований на развитие проекта.
Теоретически, после реверс-инжиниринга протокола Skype любые мессенджеры могут свободно подключаться к сети Microsoft и напрямую обмениваться сообщениями с пользователями Skype, в том числе мессенджеры Telegram или Viber.
После публикации исходников на Github некоторые разработчики отмечают плохую структуру кода, повсеместные магические строки, утечки памяти и повсеместные переполнения буфера. Впрочем, это не умаляет заслуг разработчика, который проделал большую работу. Автор просит протестировать программу и высказать свои предложения и пожелания.
UPD 05.09. Ефим Бушманов пишет, что загрузка контактов перестала работать. Похоже, Skype отключил сервера с контакт-листами совсем. Контакты можно добавить вручную, если добавить файл contacts.txt в корневую директорию и вручную добавить контакты из Skype в таком формате:
u/skypeuser1
u/skypeuser2
u/skypeuser3
u/skypeuser4
u/skypeuser5
Остальное вроде пока работает, говорит автор.
Комментарии (102)
AlexanderS
04.09.2016 21:52+6В своё время на компе у меня был, да и сейчас есть, QIP, в котором подключены аська, джаббер, Google Talk и т.д.
Было бы неплохо на телефоне тоже иметь удобный мультипротокольный клиент. А не держать зоопарк мобильных мессенджеров.dartraiden
04.09.2016 23:36+1В Pidgin и Miranda NG есть поддержка SkypeWeb. Это что касается десктопа. Жаль, что закопали Maemo — она как раз позволяла запускать Pidgin на смартфонах.
NeoHS
05.09.2016 10:46Как вариант, есть IM+ для многих мобильных платформ.
AlexanderS
05.09.2016 11:29Есть он у меня. После перезагрузки телефона иногда вываливаются какие-то старые сообщения с пометкой, что новые. Софт не развивается, к сожалению. А в аське и джаббере народу не осталось — приходится на телефоне держать вайберы, вотсаппы и всякие телеграмы)
ange007
05.09.2016 13:08QIP жив ещё?
AlexanderS
05.09.2016 13:24Не жив. Последнее обновление было в конце 2014 года, билд 9380, в то время как я уже очень давно использую билд 9379, я даже обновляться не стал. Создатель попытался заявить о себе на рынке мобильных мессенджеров создав 4talk. Но весной этого года проект 4talk был закрыт.
Oplkill
05.09.2016 17:59-2А с чего он вообще должен умереть? Функцию чата выполняет? Выполняет. Звонки есть? Есть. Осталось добавить шифрование и всё, будет лучше чем телеграм, а если и видео-звонки прикрутить, то вообще вполне конкурентно-способен!
bopoh13
07.09.2016 12:40Старая инфа не редактируется и удалить нет возможности. Из длинного списка только 8 контактов онлайн, из них только 5 живых (остальные просто висят в онлайне очень давно). У тех кто онлайн приблизительно такая же ситуация с контактами.
vlivyur
08.09.2016 09:37Что такое «старая инфа» и зачем её редактировать? Историю сообщений потереть можно только на своей стороне. С другой стороны никакого контроля нет и это логично.
Fayon
04.09.2016 22:05+1А смысл? Будет как с аськой, которая периодически меняла протоколы.
openkazan
04.09.2016 23:26+3К скайпу «привязаны» многие модели телефонных аппаратов. Думаю не так просто будет взять и отрубить эти трубки изменением протокола.
Rumlin
05.09.2016 13:57Время жизни устройств 3-7 лет с точки зрения поддержки производителем. Например с 2013 года телевизоры Smart TV выпускаются с поддержкой новой версии приложения YouTube, старые Smart TV перестали проигрывать Youtube в конце 2014 (отличить их можно по иконке Youtube в меню — на черном фоне).
https://geektimes.ru/post/249352/ Без новых гаджетов не будет котиков: YouTube перестанет работать на старых устройствах
Incidence
04.09.2016 22:37+2Одна из них — обфусцированный исходный код, который корпорация Microsoft отказывается предоставить для аудита и проверки специалистами по безопасности.
ээээ… Если исходный код никто за пределами МС не видел, откуда же известно, что он обфусцированный?snuk182
05.09.2016 14:47+1Из более-менее свежего: вот. А вообще довольно давно, еще до покупки Скайпа бегала статья о процессе ковыряния протокола. Такие вещи, как встроенный антиотладчик, нестатическая точка входа в программу были очень показательны на то время (емнип, 2011 год). К сожалению, сейчас не могу найти эту статью, возможно ее тоже потерли во избежание.
dartraiden
04.09.2016 23:34+4С этими исходниками есть две проблемы:
— практическая: это реверсинг Skype 5.5. Microsoft постепенно закапывает старый протокол и переходит на MSNP24, используемый в SkypeWeb.
— по словам разработчика, репозиторий содержит полностью переписанный с нуля код за исключением двух файлов, которые получены путем прогона оригинальных скайповских бинарников через Hex-Rays. Эти файлы под свободной лицензией распространять нельзя, их следует полностью переписать. Но всё равно, в целом, юридическое положение кода шаткое. В Европе и США законодательство различает два вида реверс-инжинеринга: когда осуществляется дизассемблирование закрытого кода и новый код пишется, глядя на листинг дизассемблера, и когда реверс-инжинеринг идёт по документации, либо через «третьи руки» (один человек смотрит на листинг дизассемблера и в общих чертах описывает происходящее другому человеку, который пишет код). Ефим работал по первому способу, а такую работу суды обычно признают производной. Следовательно, все права на этот код у Microsoft, и LGPL тут не пахнет.
motienko
05.09.2016 00:13Вроде бы много лет уже существует skype4pidgin
https://github.com/EionRobb/skype4pidgin/tree/master/skypewebiSlava
05.09.2016 03:56он просто использует API который предоставляет бинарник скайпа.
xvitaly
05.09.2016 14:45purple-skypeweb — это написанная с нуля реализация на основе веб-версии Skype. Она не требует бинарников Skype и работает достаточно стабильно.
iSlava
05.09.2016 15:08звонить-то можно? не нашёл об этом упоминания.
xvitaly
05.09.2016 16:24На данный момент нет, т.к. функция звонков появилась совсем недавно в веб-версии. Автор плагина говорит, что уже ведёт работы по добавлению функции звонков (но не в Windows версии, т.к. Pidgin для Windows по какой-то причине собирают без поддержки аудио-видео).
APLe
05.09.2016 16:32Где-то год или два назад встречал в сети страшилки — дескать, MS определяет использование неофициальных клиентов, и навсегда блокирует аккаунты их пользователей.
Не подскажите, насколько оно правда?D_T
05.09.2016 16:44-1Знакомого недавно забанили за неродного клиента то ли в вацапе, то ли в вайбере. Поставил обратно родного, через пару недель разбанили.
NeverLoved
05.09.2016 19:39Баны прилетали за использование skypekit после его запрета. Об этом писали на хабре.
APLe
05.09.2016 19:44Да, вот про это и читал. То есть нельзя только конкретно skypekit использовать, а другие реализации — можно?
Zlobober
05.09.2016 00:14> Авторами программы, предположительно, являются Ефим Бушманов и Сергей Бугаев. Сергей сказал, что написал большую часть кода.
Автор, читай внимательно, на что ссылаешься. В упомянутом тикете чёрным по белому написано, что код написан Ефимом Бушмановым, а Сергей лишь открыл тикет, в котором интересуется о правовом статусе проекта.
valis
05.09.2016 06:36+6Представьте себе мир, в котором нельзя отправить e-mail из почтового ящика gmail на hotmail! Скажете абсурд? А теперь посмотрите на наши любимые месседжеры! Реверс инжиниринг их протоколов ничего не даст и предложить план действий тоже никто не может
mihmig
05.09.2016 10:55Так мы уже в мире где есть люди, считающие вконтакте(фейсбук у американцев) и интернет синонимами.
D_T
05.09.2016 12:46Был такой мир: лет 15-20 назад СМС от одного оператора не доходило к абоненту другого. ИМХУ нынешние мессенджеры на той же стадии развития, т.е. подгребания пользователей под себя. Была попытка сделать XMPP (jabber) но как-то заглохла.
Incidence
05.09.2016 12:53Ну так Жабер умер именно потому что его писали гики для гиков, а не для обычных пользователей.
valis
05.09.2016 13:13-1А e-mail или http не так появился?
Дело в закрытости и как следствие — не совместимости протоколов.Incidence
05.09.2016 13:18+1EMail и HTTP появились в интернете тогда, когда там обычных пользователей не было.
А несовместимость протоколов это следствие плохой стандартизации, а не закрытости (протокол жаббера всегда был открытым, емнип).D_T
05.09.2016 14:40EMail и HTTP появились когда интернет был некоммерческим: ученым и военным не надо было на нем зарабатывать, цели другие были. А потом эти протоколы настолько сильно распространились что уже ничем их не смыть.
D_T
05.09.2016 14:31ИМХУ он умер потому что на сегодня никому из ИТ-гигантов не нужен открытый протокол. Точнее не нужен открытый клиент, т.к. теряется источник денег: реклама или абон.плата. Сейчас у них идет борьба за пользователя, пока еще надеются победить, поэтому нет смысла устраивать альянсы и придумывать стандарты, пока выгоднее каждый сам по себе.
Incidence
05.09.2016 15:01+2Вы это серьёзно??? Свободный протокол на свободных клиентах не взлетел потому, что «заговор мегакорпораций» и рекламщиков? Чущь собачья.
Жаббер как протокол был изначально user-unfriendly. Отсутствие жёсткой стандартизации (и не надо мне рассказывать, что сообщество разработчиков свободного софта не может создать жёсткий стандарт) привело к тому, что каждый вендор наполнял его нужными лично ему функциями понятными только ему способами и расширениями, в результате между доменами кроме базовых функций нихрена не работало — и это превратилось в головную боль разработчиков новых клиентов. Опять же каждый придумывал свой костыль для передачи бинарных блобов из-за того, что он, видите-ли, XML-based. Не, пока мы все сидели на диалапах и ADSLах, это и было оправдано. Но сейчас — сравните набор функций, которыми ежедневно пользуются в телеграме и прикиньте, как ЭТО можно было сделать на жаббере. В целом, Жаббер — мертворождённый выкидыш эпохи IRC, который опоздал на поезд современности IM. Место ему где-то там в IoTах, умных домах и прочей фигне.D_T
05.09.2016 15:59То что жаббер не айс — согласен, но например HTTP 1.1 тоже не айс, но пилят ведь совместно HTTP 2, причем там мало чего общего с HTTP 1.1. Так и тут — было бы желание — был бы жаббер 2, возможно без XML и других наследств прошлого.
Почему каждый свой велосипед изобретает? Не знаю. Может из-за потенциальных доходов, может банально функционал настолько неустоявшийся, непонятный по применению и объемам, непредсказуем функционал который надо будет завтра, и т.д. и т.п., что проще взять и по-быстрому сделать у себя новую фичу, чем согласовывать в консорциумах. Думаю ответ где-то посередине.
sleeply4cat
05.09.2016 08:15+6Зачем люди используют гитхаб для подобных проектов, если известно, что он удаляет репозитории по любому чиху правообладателей?
Alexeyslav
05.09.2016 11:12С гитхаба очень удобно склонировать репозиторий себе и куда-нибудь в другое место. Буквально парой команд. Удалят — развернут копию, и не на гитхабе а где-то ещё. Главное эту копию сделать.
Shlyapa
05.09.2016 09:49> Одна из них — обфусцированный исходный код, который корпорация Microsoft отказывается предоставить для аудита и проверки специалистами по безопасности.
Я не понял, а вотсап, вибер, телеграм и 100500 других мессенджеров в опенсорсе, что ли?
bertmsk
05.09.2016 10:31+4Нежелание МС выкладывать в открытый доступ то как раз понятно. Они боятся повторения асечной истории, когда легкая Миранда по сути убила официальный клиент. Тормознутый, жирный, с кучей свистелок и перделок (правда нафуй никому не нужных как выяснилось) да еще и с рекламой.
worldmind
05.09.2016 10:45+2Нда, на такие разработки с непонятной целью у людей есть энтузиазм, а на допил какого-нибудь Tox нет, жаль.
Сделали конечно крутую вещь, но проблем скайпа она не решит.APLe
05.09.2016 13:42К сожалению, у Tox (так же, как у ICQ, Jabber и многих других) есть фатальный недостаток — в отличие от Скайпа, они непопулярны.
А IM — средство общения, и главное, что нужно для удобства его использования — большое количество существующих пользователей.worldmind
05.09.2016 16:02Популярность дело такое, когда-то всё были в ICQ и говорили про остальное что оно не популярно поэтому плохое, а сегодня про ICQ уже говорят что непопулярно.
И я думаю, что так будет повторяться ещё много раз до тех пор пока не перейдут на IM который не имеет единого центра управления, единой точки отказа.APLe
05.09.2016 16:36Думаю (по крайней мере, надеюсь), вы правы.
Но это не отменяет того факта, что конкретно сейчас они не популярны, :-(.
reversecode
05.09.2016 10:47> Одна из них — обфусцированный исходный код, который корпорация Microsoft отказывается предоставить для аудита и проверки специалистами по безопасности.
https://download.skype.com/share/security/2005-031%20security%20evaluation.pdf
код там особо не менялся
kekekeks
05.09.2016 11:24Так можно же со скайпосетью работать через MSNP, смысл в деобфускации старого протокола?
kekekeks
05.09.2016 11:25Вот даже библиотека есть с поддержкой работы со списком контактов и текстовыми сообщениями.
iSlava
05.09.2016 15:05+1Ефим Бушманов пишет, что загрузка контактов перестала работать. Похоже, Skype отключил сервера с контакт-листами совсем.
Этим они сломали и официальные клиенты. Например, я как раз сегодня ставил клиенты под вин10 и убунту, у обоих был пустой контакт-лист и в подгруженной истории контакты отображались как недружественные (серые).
kozyabka
05.09.2016 16:46Вот, что нужно: Пользователи любыми способами обмениваются ключом, один из них вводит сообщение в клиенте скайпа, когда отправляет сообщение это дело хукается и шфируется тем же АЕС и отправляется в сеть уже пошифрованным, на другом конце приходит сообщение, также хукается и дешифруется — получается защищенный клиент.
RedVelvet
Совершенно непонятно нежелание мс открыть код спецам по безопасности. Хотя клиент ну совершенно не блещет качеством после покупки компании.
a553
Anarions
и открутили возможность передавать напрямую большие файлы.
ivan386
Пользуйтесь торрентом
Anarions
Торрент имеет немного другую цель. Когда мне нужно скинуть другу файл в 350 метров — мне проще перетащить его в окно скайпа, чем разбираться с тем как быстро раздать файл через торрент. А так то да — способ всегда найдётся.
ivan386
Ну коль нельзя теперь большие файлы через него кидать. Торрент также позволяет передать файл напрямую. Нужно в скайпе только магнит передать.
Можно ещё сервисом instant.io воспльзоваться.
23rd
Ну заодно и я добавлю justbeamit.com.
KIBIs
В последнее время, в кругу своих коллег перешли на Телеграм. Плюсы кроссплатформенные клиенты под все ОС, быстрая работа ну и передача файлов(одна из причин перехода на телеграм) довольно хорошо и быстро работает.
23rd
> быстрая работа ну и передача файлов(одна из причин перехода на телеграм) довольно хорошо и быстро работает.
Это из-за новизны и будет быстрым до поры до времени. Также и у скайпа быстро раньше файлы передавались, и даже в аське.
Плюс в телеграме файлы отправляют на сервер, а собеседник с этого сервера файл скачивает. Сколько этот файл будет лежать и в течение какого времени будет доступен никто не знает.
Я уж молчу про то, что локально история вообще никак не хранится. Очень жду сторонний клиент с более полным функционалом.
Incidence
Необходимость хранить передаваемые файлы в облаке — это плата за удобство доступа к ним с любого устройства а также плата за возможность доступа к файлам в групповых чатах и каналах. И по сравнению с тем, как выглядела и работала передача файлов в скайпе (особенно в группах, брррр) и аське это — уже ОГРОМНЫЙ плюс по функциональности.
Локально история хранится. Сторонние клиенты уже есть, т.к. АПИ открытый.
23rd
> АПИ открытый
Спасибо, знал.
> Сторонние клиенты уже есть
Например?
Incidence
Например раз, два, и даже российский и т.п.
23rd
Класс. Я ожидал чего-то на десктопе, на мобильник не упало.
Ch4r1k
есть же много облачных сервисов, аля гуглодиск яндексдиск дропбокс и прочие. Торрент как-то не комильфо.
ivan386
Для передачи напрямую они не очень подходят.
Ch4r1k
ну да, согласен
sim31r
Syncthing работает под всеми ОС, как-раз напрямую передает большие файлы, хоть базы в тысячи террабайт (дропбоксы нервно курят в сторонке). Великолепная программа, почему про нее всегда забывают?
rgaliull
потому что идея хороша, а реализация нет. жрет проц и io как не в себя
simki
Сравниваю с Dropbox, памяти Syncthing занял всего 30 мб, процессора потребляет 0%, Dropbox 100 Мб минимум.
rgaliull
хотелось бы более развернутого сравнения. Для меня тема очень горяча.
Готов поучаствовать в подготовке статьи.
dmitryredkin
Лучше, может, и не был, зато не терял сообщений и не вис по 10 раз на дню.
Реально задолбало, уйду при первой же возможности.
Вот если б вотсап не привязывался к телефону!
Vilgelm
У WhatsApp нет нормальной десктопной версии. Ставить виртуалку с Android ради мессенджера это как-то странно, а веб-морда требует постоянно включенного телефона с запущенным WhatsApp и работает похуже скайпа.
Вот у Telegram есть нормальный десктопный клиент, есть возможность находить людей по никам, а не по номеру телефона и есть двухфакторная авторизация. Правда без привязки к номеру телефона все равно не обойтись, к сожалению.
KIBIs
То что привязан к телефону это конечно минус :( Было бы удобно если была возможность и на почту привязать.
vbif
Чтоб не вис, не переключайте раскладку в активном окне скайпа.
eugenius_nsk
И не забывайте поджимать левую ногу, когда пляшете с бубном.
bitrixworkshop
Наоборот, все понятно.
Эта софтина используется как рекламная площадка (1) и тесно интегрируется с другими сервисами MS (2). Везде деньги. Не хотят открывать именно это. Безопасность после возможного позора подтянуть можно.