Русский / Russian English / Английский

Сейчас на форуме: Alf, DirtySmoke (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Вопросы новичков —› TLS 1.2 + чтение из сокета
Посл.ответ Сообщение

Ранг: 6.8 (гость)
Статус: Участник

Создано: 16 мая 2020 20:41 · Поправил: Illuzion New!
Цитата · Личное сообщение · #1

Добрый вечер. Помогите, пожалуйста, советом.

Есть программа(абсолютно чистый код MSVC++, юзермод), которая устанавливает соединение по TLS 1.2 на 443 порт. Инициализация соединения выглядит так: ...htons -> ioctlsocket -> connect -> CreateEvent...
Но дальше не используется ни одной функции из ws2_32, wsock32, winhttp. В том числе, нет ни recv ни send, хотя соединение устанавливается, происходит обмен ключами, данные принимаются и программа выполняет свои функции.
Из 3-х десятков потоков попробовал остновить все, кроме одного, чтобы соединение не разрывалось. Внутри идёт обработка WaitForMultipleObjects -> GetOverlappedResult -> ResetEvent и далее по-кругу. Соединение на 1-м потоке стабильно держится, хотя программа визуально, конечно, не работает.

Как эта программа принимает данные? Чувствую, что какой-то теории в голове не хватает

P.S. я думал, что это примерно такой вариант (--> Link <--), но там ведь всё равно сокет через recv потом читается.


Ранг: 331.2 (мудрец)
Статус: Участник

Создано: 16 мая 2020 21:29 New!
Цитата · Личное сообщение · #2

Как эта программа принимает данные?
Может через IOCP, если функа CreateIoCompletionPort имеется.

Ранг: 6.8 (гость)
Статус: Участник

Создано: 16 мая 2020 22:04 New!
Цитата · Личное сообщение · #3

Vamit пишет:
Может через IOCP, если функа CreateIoCompletionPort имеется.


Эта функция не вызывается..
В общем, я и забыл, что можно просто ReadFile/WriteFile делать для сокетов, а там конечно винсок не при чём Только что получилось отловить. Вроде очевидно, а день ушёл
 eXeL@B —› Вопросы новичков —› TLS 1.2 + чтение из сокета

Видеокурс ВЗЛОМ