IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[SOCKET] identification de protocol


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut [SOCKET] identification de protocol
    Bonjour,

    Je suis en train de faire un agent d'administration, j'ouvre donc un unique port
    sur ma JVM que j'aimerai attaquer soit en http via IE, soit en telnet ou encore en client lourd.

    Pour cela il me faut identifier le connecté et son client afin d'utiliser telle ou telle class pour interprerter les échanges. On voit déjà cela sur certain outils comme weblogic où le port sert aussi bien à la console que les échanges rmi/iiop.

    Mais comment faire ? une piste ?

    cdt,
    dosy

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu dois analyser les informations envoyées par le client. Il va te falloir analyser tous les protocoles de communications que tu souhaites supporter.
    Par exemple, en HTTP, le client commence généralement par envoyer "GET blablabla".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut merci mais...
    C'est pas top surtout lorsque vous pouvez aussi récuperer un objet.
    Une autre idée ?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par dosy07 Voir le message
    C'est pas top surtout lorsque vous pouvez aussi récuperer un objet.
    Sois je n'ai pas compris le sens caché de cette phrase, soit elle ne veut réellement rien dire
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Sois je n'ai pas compris le sens caché de cette phrase, soit elle ne veut réellement rien dire
    Lol, je m'explique mon cher dinobogan.

    Le principe d'une socket, c'est que l'on peut aussi echanger des objets par serialisation. Si je dois lire le flux entrant pour identifier par exemple un GET.
    j'ai peut être lu aussi une partie de mon objet, je dois donc remettre la partie lue dans le flux pour le deserialiser.

    cdt,
    dosy07

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par dosy07 Voir le message
    Lol, je m'explique mon cher dinobogan.

    Le principe d'une socket, c'est que l'on peut aussi echanger des objets par serialisation. Si je dois lire le flux entrant pour identifier par exemple un GET.
    j'ai peut être lu aussi une partie de mon objet, je dois donc remettre la partie lue dans le flux pour le deserialiser.

    cdt,
    dosy07
    Mon cher dosy07, comment veux-tu reconnaitre une langue sans en entendre le moindre mot ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Mon cher dosy07, comment veux-tu reconnaitre une langue sans en entendre le moindre mot ?
    Je pensais naïvement, qu'il existe comme http header une entête indiquand qq infos sur le flux. Mais tu as raison, ma façon de penser n'est peut être pas la bonne. Je me demande juste comment font les autres pour faire plusieurs chose par le même port (JMX,http,iiop...)

  8. #8
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par dosy07 Voir le message
    Je pensais naïvement, qu'il existe comme http header une entête indiquand qq infos sur le flux.
    Ce n'est pas naïf, tu as raison. Mais le HTTP Header, il passe par ou à ton avis ? Il est dans le flux envoyé par le client.

    Mais tu as raison, ma façon de penser n'est peut être pas la bonne. Je me demande juste comment font les autres pour faire plusieurs chose par le même port (JMX,http,iiop...)
    Exactement comme je te l'ai déjà dit. Maintenant, si ce qui te bloque est le fait de réinjecter les premières données analysées dans le flux entrant, c'est un autre problème.
    La classe java.io.PushbackInputStream est parfaite pour ce genre d'exercice : elle permet de lire un flux et de replacer des données dans ce même flux. Il ne te reste plus qu'à construire une classe d'analyse qui cherche le protocole en fonction des premières données, et qui met à disposition un InputStream. Les classes sous-jacentes n'ont pas à savoir que c'est un PushbackInputStream.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Gestion des Sockets Protocole TCP/IP
    Par Julien_C++ dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/08/2006, 15h12
  2. Socket et protocole IRC
    Par EpOnYmE187 dans le forum WinDev
    Réponses: 8
    Dernier message: 10/02/2006, 14h54
  3. socket: Address family not supported by protocol ??
    Par innosang dans le forum Réseau
    Réponses: 5
    Dernier message: 21/12/2005, 11h32
  4. raw socket et protocole TCP/IP
    Par robertmouac dans le forum Développement
    Réponses: 3
    Dernier message: 09/03/2005, 23h09
  5. identification sur le protocole HTTP
    Par windob dans le forum Développement
    Réponses: 20
    Dernier message: 31/03/2004, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo