-
question sur les socket
Bonjour, a tous volia je me suis mis a la programation socket et je sais desormai faire les truc basic initier une socket la mettre en ecoute etc je souhaiterai savoir comment a partir d'un programme par exemple cmd le rediriger sur mon socket ?
JE PRECISE QUAND MEME POUR LES PARANO que mon idee n'est pas de faire un trojan je veut juste progresser en programation socket c'est tout surtout que pk se casser la tete a cree un trojan alors qu'il en existe des tas sur le net
bref je veut juste un peu d'aide car pour faire mon programme j'avai penser a utiliser exec() pour rediriger mon programm sur le socket mais je ne suis pas certain que ça marche voila en esperant une aide merci a vous par avance
-
Tu veux dire rediriger la sortie standard de ton programme vers un socket connecté au serveur (1. il faut ce socket, sinon oublie dès maintenant - 2. le serveur ici c'est le socket sur écoute) ? Sous UNIX c'est possible avec fdopen + freopen. Si le programme doit rediriger la sortie d'un autre programme, alors exec évidemment va aussi entrer en jeu. Sous Windows, quel que soit le cas, rediriger la sortie standard vers un tube (voir _popen), et écrire sur le socket connecté tout ce qui apparaît sur le tube.
-
Je me suis posé exactement la même question. En fait, d'après les sources de Netcat pour Win32, il faudrait créer 2 pipes (cf MSDN CreatePipe) un pour stdin, et un pour stdout et stderr, puis faire un DuplicateHandle pour obtenir celui de stderr à partir de celui destiné à stdout.
Ensuite, il faut remplir une structure du type STARTUPINFO pour fournir les paramètres de création d'un nouveau processus, et dans 3 champs de cette structure figurent les handles pour les entrées/sorties ( cf MSDN encore une fois ). Bien entendu, pour créer le processus il faut faire appel à CreateProcess avec un pointeur vers la structure STARTUPINFO.
Voila, j'espère avoir été précis, ou du moins, compréhensible.