Альтернатива InternetReadFile

Discussion in 'Безопасность и Анонимность' started by miako, 15 Jun 2010.

  1. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Если использую эту WinAPI, то прога не проходит проверку на вирустотале. Чем можно заменить? Всего то надо прочитать ответ php скрипта.
     
  2. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Если использовать InternetReadFile(), или UrlDownloadToFile() - то антивирусы будут ругаться, так как антивирусы привыкли, что с помощью подобных функций школьники пишут трояны и лоадеры. Помню, в свое время проблема решилась ручным открытием сокета:

    Code:
    //////////////////////////////////////////////////////////////////////////
    #include <stdio.h>
    #include <winsock2.h>
    //////////////////////////////////////////////////////////////////////////
    #pragma comment( lib, "wsock32.lib" )
    //////////////////////////////////////////////////////////////////////////
    int main( int argc, char *argv[] )
    	{
    	char request[ 1024 * 4 ];
    	char response[ 1024 ];
    
    	char url[] = "/";
    	char host[] = "localhost";
    
    	sockaddr_in soscet_addr;
    	WSADATA wsaData;
    
    	WSAStartup( MAKEWORD( 2, 2 ), &wsaData );
    
    	SOCKET sosck = socket( AF_INET, SOCK_STREAM, 0 );
    	if( sosck == INVALID_SOCKET )
    		{
    		printf( "Error: Invalid socket!\n" );
    		return 255;
    		}
    
    	soscet_addr.sin_addr.s_addr = inet_addr( "217.0.0.1" );
    	soscet_addr.sin_port = htons( 80 );
    	soscet_addr.sin_family = AF_INET;
    
    	if( connect( sosck, (struct sockaddr*)&soscet_addr, sizeof( soscet_addr ) )== SOCKET_ERROR ) 
    		{
    		printf( "Error: Socket error!\n" );
    		return 255;
    		}
    
    	sprintf( request, "GET %s HTTP/1.1"
    		"\r"
    		"\n"
    		"Host: %s"
    		"\r"
    		"\n"
    		"Connection: Close"
    		"\r"
    		"\n"
    		"\r"
    		"\n", url, host );
    
    	send( sosck, request, strlen( request ), 0 );
    	recv( sosck, response, 1023, 0 );
    
    	printf( "%s\r\n", response );
    
    	closesocket( sosck );
    	WSACleanup();
    
    	return 0;
    	}
    //////////////////////////////////////////////////////////////////////////
    
    Хотя я на вирустоталах не проверял. У меня NOD32 сразу начинает орать, если что то не так.

    UPD: По сути, антивирусы с плохим анализом в любом случае должны на реагировать на подобные вещи.
     
    #2 Ins3t, 26 Jun 2010
    Last edited: 26 Jun 2010
    2 people like this.