[C] se placer entre les sockets?

Fermé
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 - 17 sept. 2009 à 13:45
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 - 17 sept. 2009 à 16:42
Coucou !
Je programme en C sous windows avec les sockets , et j'aurai voulu savoir s'il été possible de se placer entre une application client et un serveur, faire office de passerelle en quelques sortes? Donc j'ai un programme qui se connecte à un serveur et qui envoie une chaine de caractère. Le problème et que le message contient une faute et je n'ai pas les sources du .exe ... j'aurais voulu faire office de passerelle et modifier le message envoyé :s est-ce possible ? merci

8 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2009 à 13:47
pour connaitre le contenu des trames, pas besoin de faire "passerelle"
utilises wireshark, c'est un analyseur de trames. Attention, chez moi ca marche pas en wifi, seulement en filaire

edit: en revanche, si tu veux en modifier le contenu, il faudra en effet créer un programme, qui se fera passer pour le serveur, il recevra les trames réseau, les modifiera, et se connectera au vrai serveur pour transmettre les trames modifiées
0
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
17 sept. 2009 à 13:49
avec wireshark on voit juste les paquets (c'est d'ailleur comme sa que j'ai vu l'erreur sur la chaine envoyée :s ) mais maintenant je voudrais modifié le message avant qu'il n'arrive au serveur...
une autre idée ?
merci bien
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2009 à 15:39
as tu vu la modification que j'avais fait plus haut alors que tu éditais ton 2° post ?
0
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
17 sept. 2009 à 16:12
En effet je n'avais pas vu dsl :s
merci bien pour ta réponse donc c'est possible :) maintenant le serveur doit être configuré de quelle manière pour se faire passé pour le serveur ? car lorsqu'un client se connecte a un serveur il ouvre une socket et celle-ci les relie directement . Le serveur doit avoir la même que le serveur mais en local ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2009 à 16:15
alors, le plus simple, en effet, c'est de créer en local un serveur, sur le même port que le serveur réel. dans ton programmes, tu devras spécifier l'adresse 127.0.0.1 à la place de l'adresse du serveur. Si ce réglage d'adresse n'est pas possible, ca va compliquer les choses !

donc tu crées ton serveur, on va dire sur le port 5050
tu fais la création de la socket, le mode listen, l'acceptation, quand tu accèptes, tu crées uen nouvelle connexion vers le vrai serveur (meme port), et ensuite, il reste plus qu'à transferer les données, gérer les déconnexions,etc.

n'hésites pas à publier ton code ;)
0
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
17 sept. 2009 à 16:23
merci beaucoup, je vais coder et paramétré mon serveur ! Après pour renvoyer la réponse au programme, avec le serveur j'envoie le texte reçu a mon adresse ip(locale 192.168....) sur le port spécifié ? Merci encore !
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2009 à 16:26
tu auras 2 sockets: une vers le client, une vers le serveur. Tu n'as cas analyser les buffers de receptions, y faire tes modifs et envoyer à l'autre socket. Je ne vois pas quoi dire de plus ..
0
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
17 sept. 2009 à 16:42
Ok je vais tester sa :) je posterai un message quand j'aurai codé tout sa merci bien nabla's
0