Hook Socket

tomactomac Membre
20:08 modifié dans API AppKit #1
Bonjour à  tous,  :why?:
Je vous expose la situation : une application se connecte (par socket) sur un serveur. Client <
> Serveur

Et j'aimerais savoir si je peux placer mon application à  moi au milieu de tous sa (une sorte de serveur Tampon)  :fouf):
Client <
myApp
> Serveur

Une sorte de petit sniffeur en gros mais qui peut changer quelques packets.  :p

Mais le problème c'est que je ne sais pas du tout comment faire cela sous Mac en Objective-c.

Merci d'avance....

Réponses

  • MalaMala Membre, Modérateur
    20:08 modifié #2
    Cela me parait peu probable.
  • AliGatorAliGator Membre, Modérateur
    20:08 modifié #3
    C'est possible si c'est prévu par le soft de passer par un proxy. Dans ce cas, ton application fait office de proxy, c'est à  dire justement de relai intermédiaire entre le client et le serveur.

    Sinon, si c'est pas prévu par le soft, c'est en général pas possible puisque le client va aller se connecter à  l'IP aaa.bbb.ccc.ddd sur le port pppp, et le serveur à  cette IP a déjà  un socket d'ouvert écoutant sur le port pppp. Donc tu es alors obligé de te placer sur la machine avec l'IP aaa.bbb.ccc.ddd pour recevoir les requêtes, et d'écouter sur le port pppp pour les récupérer... mais le port pppp étant déjà  en écoute, tu n'auras pas le droit d'écouter aussi.

    Bien sûr, il y a sans doute moyen de bidouiller, genre te faire passer pour le serveur en faussant les adresses IP ou en tapant dans la couche basse du réseau avec des libs en C qui viennent prendre la place de la couche OSI bas niveau (comme le font des softs comme WireShark), mais c'est pas simple... et crado :P

    Ou sinon, voir si du côté de la conf client il n'y a pas moyen de le faire se connecter à  une autre IP que celle du serveur (mais plutôt l'IP de la machine où tu auras ton Hook), ou à  un autre port (sur lequel ton Hook va écouter). Si tu peux lui dire sur quel serveur et quel port se connecter, il suffit de lui donner les infos de ton Hook au lieu de celles du vrai serveur dans ce cas.
  • tomactomac Membre
    20:08 modifié #4
    Ok merci grâce à  toi j'ai quelques idées :
    - Comme le client utilise les sockets Preferences Système -> Proxys -> Proxy SOCKS et le tour est jouer.
    - Sinon je dois arriver à  décompiler le client (ce n'est pas dure c'est du java) et le recompiler avec l'adresse de mon serveur

Connectez-vous ou Inscrivez-vous pour répondre.