Programación General > C/C++
Re: troyano c (server-client)
joaquinrg:
Hola, q tal? Alguien ha visto por ahi algun tutorial sobre como programar un pequeño troyano en c? lo he visto en vb pero no en c. Hace poco aprendi algo de programar con sockets programas cliente/servidor. Hice un programa que ejecutaba el comando q escribieras (en el cliente) en el server, pero no se como ver el resultado de dicho comando en el cliente. Me dijeron q tengo q utilizar pipes o algo asi, pero no he encontrado informacion buena para windows. Alguien tiene algo? Gracias
chuidiang:
Mira a ver si tienes la funcion popen() (esta en C de linux, no se si windows la tiene.)
Esta funcion ejecuta un programa y te permite leer su salida. Algo asi como esto
FILE *salida;
salida = popen ("ejecutable.exe parametros", "r");
leyendo salida, lees la salida del ejecutable.
Esa salida tendrias que enviarsela al cliente a través del socket.
Se bueno.
joaquinrg:
Muchas gracias chuidiang, lo que me has puesto funciona bien en windows tambien. Este codigo funciona bien:
--- Código: Text --- #include <stdio.h> int main(){FILE *salida;salida = popen ("dir", "r");char linea[200];while( ! feof(salida) ){ fgets(linea, sizeof(linea), salida); fputs(linea, stdout);}getchar();}
Ahora que tendria q hacer?enviar salida al cliente por sockets,no? como? la forma que yo conozco es
send(socket, cadena, strlen(cadena), 0);
recv(socketcliente, cadena, 100, 0);
como puedo enviar salida, puesto q no es una cadena verdad? Gracias
joaquinrg:
Bueno, ya lo he conseguido, aunque un poco chapucero. He ido enviando y recibiendo cada linea cada vez q se escribia. Lo q pasa q antes de enviarlo tengo q saber cuantas lineas son para q el cliente sepa cuantas lineas tiene q recibir...
chuidiang:
Hay varias formas de hacerlo, como enviar una cadena especial que signifique fin de fichero.
Si quieres algo más serio, mira en www.geocities.com/chuidiang un apartado de cómo hacer mensajes para enviar por sockets. Deberías hacerte un mensaje de ida "ejecuta_comando" y un par de vuelta "toma_linea" y "fin_fichero".
Se bueno.
Navegación
[#] Página Siguiente
Ir a la versión completa