Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gxg en 13 Abril 2011, 23:45 pm



Título: Como ocultar las llamadas al sistema.
Publicado por: gxg en 13 Abril 2011, 23:45 pm
Mi programa de tipo consola lo oculto con la funcion freecosole();

Este programa con un cierto periodo hace llamadas al sistema con system("");

Pero cada vez que hago una llamada con system(""); se ve en la pantalla durante 0.1 segundos una ventana de ms-dos

¿Como puedo ocultar eso?

El SO que estoy usando es windows XP.



Título: Re: Como ocultar las llamadas al sistema.
Publicado por: Akai en 14 Abril 2011, 00:02 am
system lo que hace es decirle al sistema que ejecute el comando x, siendo x la cadena que tu le pasas por parámetro. Estos comandos, como ya has notado, se ejecutan en la consola.

Como se hacen llamadas al sistema sin usar la consola? no uses system. Utiliza las funciones o código necesario para realizar lo que quieras hacer SIN necesidad de system.

(Pongo el ejemplo con funciones de Linux que son las que domino, pero la idea es la misma)

Ejemplo supongamos que system("cd /home/usuario" ) cambia el directorio de trabajo a /home/usuario. Esto, obviamente, nos saca la consola y es lo que queremos evitar.

Por otro lado, tenemos la función chdir que nos cambia el directorio de trabajo a donde nosotros le indiquemos, sin recurrir a system, es decir, realizamos la misma llamada al sistema, pero sin system.

(fin del ejemplo)

Si pudieses añadir un ejemplo de llamada system que quieres sustituir, se te podría encabezar hacia la msdn o ayudarte de una forma más concreta.


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: Edu en 14 Abril 2011, 00:28 am
Tiene q tener algun parametro o algo, por ejemplo en vb6 es
Código
  1. System "comando" , vbHide
algo asi.


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: gxg en 14 Abril 2011, 12:16 pm
Mi programa  cada x segundos  accede a un servidor, lee un fichero en el servidor y el texto lo pasa a la función system. Osea que no puedo programar todas las funciones una por 1 xD.

Lo que estoy buscando es algo parecido a lo que dice XXX-ZERO-XXX .


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: Oblivi0n en 14 Abril 2011, 14:17 pm
Tiene q tener algun parametro o algo, por ejemplo en vb6 es
Código
  1. System "comando" , vbHide
algo asi.

No, esto no es vb.....
Código
  1. int system(const char *cadena);


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: Edu en 14 Abril 2011, 15:50 pm
Oblivi0n dices que el codigo que puse no es vb6? o q? yo bien dije "por ejemplo en vb6" para dar una opinion de como podria ser en C++


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: poitier en 14 Abril 2011, 18:43 pm
Mi programa  cada x segundos  accede a un servidor, lee un fichero en el servidor y el texto lo pasa a la función system. Osea que no puedo programar todas las funciones una por 1 xD.

¿Y para qué le pasa el texto a la función system?  :rolleyes:


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: gxg en 14 Abril 2011, 21:03 pm
Porque así accedo a la consola de un ordenador que tenga ejecutandose mi programa, de forma remota.


Título: Re: Como ocultar las llamadas al sistema.
Publicado por: Oblivi0n en 14 Abril 2011, 21:12 pm
Oblivi0n dices que el codigo que puse no es vb6? o q? yo bien dije "por ejemplo en vb6" para dar una opinion de como podria ser en C++

Nono, digo que en C/C++ funciona de modo diferente... xD (perdona si puede sonar mal la respuesta)

A el autor del post: Ahora mismo no estoy seguro, pero creo que con WinAPI hay funciones que tienen un uso similar a system  y que puedes pasar como parametro si la consola aparece oculta o no