Первый самодельный клиент, который подключается к Skype Network

Первый самодельный клиент, который подключается к Skype Network

Skype — один из самых небезопасных мессенджеров по объективным причинам. Одна из них — обфусцированный исходный код, который корпорация Microsoft отказывается предоставить для аудита и проверки специалистами по безопасности.

Несмотря на все риски, многие люди вынуждены использовать клиент Skype.

Закрытость протокола и официального клиента вынудила активистов пойти на нарушение закона DMCA и принудительно деобфусцировать исходный код клиента. В марте 2012 года был опубликован деобфусцированный рабочий клиент Skype 5.5.

Skype 5.5 представляет собой некий гибрид графического интерфейса, написанного на Delphi, и встроенных библиотек DLL с «ядром». Ядро программы — полностью независимая структура на уровне бинарного кода: блоки кода, блоки данных, импорт. Если судить по наличию следов библиотек VC, то для компиляции программы использовался компилятор Visual C++.

В рамках проекта Skype Open Source в июне 2011 года был также проведён обратный инжиниринг протокола Skype, исходный код которого тоже опубликовали в открытом доступе. Сейчас найти тот клиент и исходные коды непросто, потому что по требованиям DMCA хостеры удалили оригинальный блог, а также почти все копии клиента skype55.zip, которые разошлись по Сети.

Новый протокол

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

И разработчики снова добились своего. 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 Network

Первый самодельный клиент, который подключается к Skype Network
На тестовой машине не удалось завершить процедуру импорта контактов

Авторами программы, предположительно, являются Ефим Бушманов и Сергей Бугаев. Сергей сказал, что написал большую часть кода. А Ефим был автором предыдущих версий деобфусцированного клиента Skype и автором первого блога Skype Open Source. Можно предположить, что здесь он тоже приложил руку.

Несмотря на предположительное нарушение DMCA, предлагается коммерческая лицензия на Epycs Messenger. Продолжается также сбор пожертвований на развитие проекта.

Теоретически, после реверс-инжиниринга протокола Skype любые мессенджеры могут свободно подключаться к сети Microsoft и напрямую обмениваться сообщениями с пользователями Skype, в том числе мессенджеры Telegram или Viber.

После публикации исходников на Github некоторые разработчики отмечают плохую структуру кода, повсеместные магические строки, утечки памяти и повсеместные переполнения буфера. Впрочем, это не умаляет заслуг разработчиков, которые проделали большую работу. Авторы просят протестировать программу и высказать свои предложения и пожелания.