А вообще такие дропперы иммеют смысл? с дропом на диск, как быстро он поймает детекты
А какие еще предложения?А вообще такие дропперы иммеют смысл? с дропом на диск, как быстро он поймает детекты
/******************************************************************************/
/* Процедура рукопожатия */
/* */
/* host [in] - L"", хост */
/* port [in] - L"", порт */
/* tls_ver [in] - TLS1_2, tls v1.2 */
/* - TLS1_3, tls v1.3 */
/* - TLS_DEFAULT, настройки по умолчанию */
/* verify [in] - TRUE, проверять цепочку сертификатов */
/* - FALSE, не проверять */
/* */
/* return - PTLSContext, указатель на структуру TLS */
/* - NULL, ошибка */
/******************************************************************************/
PTLSContext tls_connect(PWCHAR host, PWCHAR port, TLS_VER tls_ver, BOOL verify);
/******************************************************************************/
/* Закрытие соединения */
/* */
/* ptls [in] - указатель на структуру TLS */
/* */
/* return - void */
/******************************************************************************/
void tls_close(PTLSContext ptls);
/******************************************************************************/
/* Отправка данных */
/* */
/* ptls [in] - указатель на структуру TLS */
/* in_buf [in] - буфер */
/* in_len [in] - размер буфера */
/* */
/* return - N, количество переданных байт */
/* - N < 0, ошибка */
/******************************************************************************/
int tls_send(PTLSContext ptls, PBYTE in_buf, DWORD in_len);
/******************************************************************************/
/* Получение данных */
/* */
/* ptls [in] - указатель на структуру TLS */
/* out_buf [out] - буфер */
/* out_len [in] - размер буфера */
/* */
/* return - N > 0, количество полученных байт */
/* - 0, соединение разорвано / нету данных */
/* - N < 0, ошибка */
/******************************************************************************/
int tls_recv(PTLSContext ptls, PBYTE out_buf, DWORD out_len);
int entry(void)
{
PTLSContext ptls = NULL;
if (!(ptls = tls_connect(L"www.google.com", L"443", TLS1_3, FALSE)))
ExitProcess(EXIT_FAILURE);
DWORD n;
PBYTE b = memory_alloc(2048);
if (!b) {
tls_close(ptls);
ExitProcess(EXIT_FAILURE);
}
n = wsprintfA(b, "GET / HTTP/1.1\r\n"
"Host: %s\r\n"
"Connection: close\r\n\r\n", "www.google.com");
if (!tls_send(ptls, b, n)) {
memory_free(b);
tls_close(ptls);
ExitProcess(EXIT_FAILURE);
}
while (1) {
memset(b, 0, 2048);
if (!(n = tls_recv(ptls, b, 2048)))
break;
printf(b);
}
memory_free(b);
tls_close(ptls);
ExitProcess(EXIT_SUCCESS);
}