"Если вдруг открылся люк, не пугайся, это глюк!" (с) Если что-то работает не так, вы нашли ошибку или опечатку в программе — вам в этот раздел
yurasek
В последних версиях MyChat какая-то беда творится с шифрованием. В 5.2, например, всё работало, потом пошли какие-то странности: то клиент вообще ничего не знает о шифровании, то сервер как-то некорректно отрабатывает безопасное подключение.
Для проверки использую клиент версии 5.6.0.550 и сервер версии 5.6.0.833.
Вот, что пишет в лог любой клиент в независимости от типа авторизации (обычная или доменная) при подключении к серверу:
[28.07.2014 23:08:50] Встроенный FTP запущен, заняты порты 10001 и 10002
[28.07.2014 23:08:44] Application started. Version 5.6.0 / 15.07.2014, database version: 58
[28.07.2014 23:08:44] Local IP/MAC: 192.168.0.13, 08-00-27-38-D7-3D
[28.07.2014 23:08:44] Command line: "C:\Program Files\MyChat Client\mcclient.exe"
[28.07.2014 23:08:50] Загружен плагин "AntiCAPS", версия 1.4 от 29.07.2013, API 5.0
[28.07.2014 23:08:50] Загружен плагин "Beeper", версия 1.6 от 29.07.2013, API 5.0
[28.07.2014 23:08:50] Поиск сервера MyChat...
[28.07.2014 23:08:50] Подключение к серверу test.local (IP 192.168.0.3, порт 2004)...
[28.07.2014 23:08:50] Cryptographic library version: Without SSL support
[28.07.2014 23:08:50] SSL/TLS version:
[28.07.2014 23:08:50] Сетевая ошибка №10091: "SSL/TLS support is not compiled!"
[28.07.2014 23:08:50] *** Пользователь отключен от сервера
[28.07.2014 23:09:04] Поиск сервера MyChat...
[28.07.2014 23:09:04] Подключение к серверу test.local (IP 192.168.0.3, порт 2004)...
[28.07.2014 23:09:04] Авторизация...
[28.07.2014 23:09:07] Авторизация прошла успешно, UIN=4

А вот, что пишет сервер:
28.07.2014 23:09:01:677|0031|100||192.168.0.13|10054: Connection reset by peer

Как видно клиент пытается подключиться с использованием шифрования, но ничего не выходит, в результате чего происходит переключение на режим без шифрования.
Из особенностей работы сервера отмечу, что из трёх библиотек шифрования не подгружается только "libssl32.dll".
Аватара пользователя
Алексей Пикуров
В папке с MyChat Client (mcclient.exe) присутствуют файлы libssl32.dll, ssleay32.dll и libeay32.dll ?
Аватара пользователя
March Tom-Cat
Ситуация такая же. Началось при переходе с 5.5 на 5.6, обновлялось средствами сервера MyChat.
Файлы присутствуют.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Алексей Пикуров
Можете посмотреть ProcessExplorer-ом, загрузил ли mcclient.exe эти библиотеки. Может, ему кто-то помешал их загрузить?

Если не затруднит.
Аватара пользователя
March Tom-Cat
properties->threads?
и как можно посмотреть кто ему мешает dll-ки загрузить?

P.S. Следующий ответ уже завтра.
Аватара пользователя
Алексей Пикуров
Кто мешает - вы там вряд ли увидите. Но увидите, загружены ли библиотеки процессом mcclient.exe
Запускать ProcessExplorer от имени администратора, это важно (чтобы UAC не мешал):
pexplorerrunasadmin.png

Должно быть что-то в этом духе:
pesslloadlibraries.png

Т.е. две библиотеки, загруженные оттуда же, откуда запускается mcclient.exe
У вас нет необходимых прав для просмотра вложений в этом сообщении.
yurasek
Только сейчас обратил внимание, что проблема всё-таки не в сервере, а в клиенте.
Я тестирую клиента на чистой Windows XP SP3 и, если посмотреть подгруженные библиотеки, то среди них нету ни одной. Я проверил поиском и не нашёл где-либо таких же библиотек, так что можно исключить вариант, что используются другие версии библиотек по другому пути. Смотрю в Process Explorer и не вижу даже попыток загрузить библиотеки клиентом. Проверил на Windows 8.1 - всё работает корректно.
Решил посмотреть системные события и вот что обнаружил на момент запуска:
Тип события: Ошибка
Источник события: SideBySide
Категория события: Отсутствует
Код события: 32
Дата: 25.07.2014
Время: 21:27:53
Пользователь: Н/Д
Компьютер: COMP2
Описание:
Зависимая совокупность Microsoft.VC90.CRT не может быть найдена, последняя ошибка Указанная совокупность не установлена в системе.
Тип события: Ошибка
Источник события: SideBySide
Категория события: Отсутствует
Код события: 59
Дата: 25.07.2014
Время: 21:27:53
Пользователь: Н/Д
Компьютер: COMP2
Описание:
Resolve Partial Assembly завершилась не удачно для Microsoft.VC90.CRT. Соответствующее сообщение об ошибке: Указанная совокупность не установлена в системе.
Тип события: Ошибка
Источник события: SideBySide
Категория события: Отсутствует
Код события: 59
Дата: 25.07.2014
Время: 21:27:53
Пользователь: Н/Д
Компьютер: COMP2
Описание:
Generate Activation Context завершилась не удачно для C:\Program Files\MyChat Client\libeay32.dll. Соответствующее сообщение об ошибке: Операция успешно завершена.
Так повторяется для трёх библиотек.
Установка пакета Microsoft Visual C++ 2008 (x86) решила проблему.
Скорее всего новые библиотеки криптографии зависят от более новых версий библиотек, которых нет в старых системах и в инсталяторе MyChat. Так что проблема всё-таки может возникнуть как на клиенте так и на сервере.
Аватара пользователя
Андрей Раков
yurasek

Спасибо за ваше наблюдение.

Мы проверим зависимости новых библиотек OpenSSL и будем рекомендовать устанавливать их для установки (для устаревших ОС).
Аватара пользователя
Алексей Пикуров
yurasek писал(а):Установка пакета Microsoft Visual C++ 2008 (x86) решила проблему.

Возможно, установка пакета http://www.microsoft.com/en-us/download ... aspx?id=29 решит проблему? Можете проверить у себя на какой-то из старых XP?
Аватара пользователя
March Tom-Cat
Алексей Пикуров писал(а):Должно быть что-то в этом духе:
Т.е. две библиотеки, загруженные оттуда же, откуда запускается mcclient.exe

Две библиотеки грузятся.
А третья не должна?

P.S. Оффициалка Win 8.1 правда не со всеми патчами, сейчас попробую доустановить все. Так же попробую и вредист поставить.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
March Tom-Cat
Вредист стоит 2010 x86 и x64. Нужен обязательно 2008 или 2010 тоже сойдет?
Аватара пользователя
March Tom-Cat
Обновил операционку, результат тот же.
Аватара пользователя
Алексей Пикуров
Должны грузиться две библиотеки, всё верно. 2008 должен подойти.
Аватара пользователя
Алексей Пикуров
March Tom-Cat писал(а):Обновил операционку, результат тот же.

Речь идёт о 8.1? Результат какой? Библиотеки не загружаются?
Аватара пользователя
March Tom-Cat
viewtopic.php?p=15409#p15409
Библиотеки грузятся, на скрине видно, 2 штуки.
Windows 8.1 Проффессиональная, x64.
Вредист стоит 2008, 2010. как х86, так и х64.
Пробовал запускать клиент от имени админа - результат отрицательный.
В журналах пусто. Т.е. нет ни одного упоминания о сбоях в тему MyChat'а.
Версии сервера и чата в скринах.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Алексей Пикуров
Хорошо. Такая "бяка" в протоколах на всех клиентах? Можете посмотреть тем же Process Explorer-ом на сервере MyChat, загружены ли библиотеки SSL процессом mcserv.exe ?
Аватара пользователя
March Tom-Cat
Была... на сервере не был установлен редист...
Поставил, перезапустил сервер - проблема ушла.

Есть предложение включить в установщик вредисты, весят они не много, но помогут избежать подобных проблем.

P.S. Спасибо за помощь! :o
Аватара пользователя
Алексей Пикуров
И вам спасибо за помощь. Сейчас разворачиваем на виртуальных машинах "голые" Windows XP SP3, чтобы проверить работу инсталляторов MyChat Server и MyChat Client с интегрированными redist пакетами.

P.S. Дистрибутивы "потолстеют" где-то на 2 мегабайта, может, чуть меньше.
Аватара пользователя
Алексей Пикуров
Проблему решили, я тестировал на "чистых" виртуальных машинах Windows XP SP3 x86 (en).

Redistributable Package решили в инсталляторы MyChat Client и MyChat Server не включать, по нескольким причинам. Подробнее тут - viewtopic.php?p=15438#p15438
yurasek
Абсолютно не согласен с Вашим решением.
На поиски удобного для Вас решения я потратил не так много времени и готов поделиться информацией.
Те версии библиотек, которые используются Вами, скорее всего скачаны с http://slproweb.com/products/Win32OpenSSL.html, где они выложены будучи скомпилированными в Visual Studio 2008 с ключом /MD, который делает их зависимыми от Microsoft Visual C++ Runtime 2008. К тому же библиотеки libssl32.dll и ssleay32.dll абсолютно идентичны. Так как решение с распространением клиента и сервера с набором библиотек Microsoft Visual C++ 2008 не подходит, то очевидным выходом является использование криптобиблиотек без каких-либо дополнительных зависимостей, а такие уже есть, и ничего компилировать не надо. Правильные библиотеки той же версии входят в состав проекта OpenVPN версии 2.3.4, да к тому же имеют цифровую подпись. Скачать OpenVPN 2.3.4 можно с официального сайта http://openvpn.net/index.php/download/c ... loads.html. Надеюсь, что лицензионные моменты не послужат ограничением в использовании этих библиотек в MyChat.
Аватара пользователя
Алексей Пикуров
Мы не работаем с Visual Studio и у нас нет специалистов по нему. Хорошо, что вы осведомлены в таких вещах, но мне это никак не поможет. Можете помочь в сборке OpenSSL из исходников с openssl.org последней версии?

P.S. C библиотеками от OpenVPN "завелось" нормально, спасибо за наводку. Не знаю, как быть с лицензией, думаю, мы этот вопрос решим. Однако хотелось бы скомпилировать библиотеки самостоятельно.
Аватара пользователя
Алексей Пикуров
Насчёт библиотек от OpenVPN. Проблемы они не решают, к сожалению. Вот что мы получаем на одной из Windows 8 x64:
[07.08.2014 23:16:46] Сетевая ошибка №10091: "error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol"

Иными словами, библиотеки эти - не панацея, какие-то зависимости в них, вероятно, есть. Какие - неизвестно, что там внутри вкомпилено - мы не знаем. Так что возвращаемся к нашему первоначальному варианту и оригинальным OpenSSL библиотекам + Redistributable пакетом, если в нём есть необходимость.
yurasek
У меня такая же ошибка была и в старой версии MyChat 5.3.0.
Вы проверяли библиотеки, скомпилированные для OpenVPN, на клиенте и сервере одновременно?
Аватара пользователя
Алексей Пикуров
Конечно. Был удивлён очень, когда столкнулся с этой проблемой, ведь для этих библиотек redist пакет не нужен, судя по их размеру :) Но, видать, какие-то зависимости в них всё же есть.