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

C++ Discussion :

sniffer , savoir si paquet fragmenté?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 25
    Par défaut sniffer , savoir si paquet fragmenté?
    Bonjour,
    Je suis en train de programmer un sniffer , et j'aimerais pouvoir dire si un paquet est fragmenté ou non , je sais qu'il faut voir les 3 bits des drapeaux mais je ne sais pas comment le decomposer puisque c'est un unsigned short , voila ma structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    struct iphdr // structure IP Header
         {
         //Pour processeur de type little-endian
         unsigned char ihl:4; // IP header length
         unsigned char version:4;
     
         unsigned char tos; // Type of service
         unsigned short tot_len; // Total length
         unsigned short id; // Identification
         unsigned short frag:3,off:13; // Fragment Offset + Flags
         unsigned char ttl; // Time to life
         unsigned char protocol;
         unsigned short check; // Checksum
         unsigned int saddr; // Source address
         unsigned int daddr; // Destination address
         };
    je suis vraiment perdu.

    merci d'avance

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Un truc comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct iphdr *ip_hdr;
    if( (ip_hdr->frag & 0x01) == 0x01)
    {
       /* le paquet est fragmenté */
    }
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    Bonjour,

    il faudrait plutôt ne pas découper frag_offset en deux via les champs de bits pour bénéficier des macros d'ip.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    00070 /* IP flags. */
    00071 #define IP_CE           0x8000          /* Flag: "Congestion"           */
    00072 #define IP_DF           0x4000          /* Flag: "Don't Fragment"       */
    00073 #define IP_MF           0x2000          /* Flag: "More Fragments"       */
    00074 #define IP_OFFSET       0x1FFF          /* "Fragment Offset" part       */
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  4. #4
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 25
    Par défaut
    Bonjour,
    merci pour vos reponses. Alors je dois laisser un seul champ : frag_offset ,definir les macros , et à chaque fois comparer avec pour voir , c'est bien ça??

  5. #5
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    pourquoi voulez vous définir la structure et les macros permettant d'en extraire les informations ? pour donner une chance à votre programme de ne pas marcher ?

    #include <netinet/ip.h> ou équivalent suivant votre distribution
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  6. #6
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 25
    Par défaut
    Je n'arrive pas à trouver netinet/ip.h ,je ne connait pas les equivalents, pouvez vous m'en citer quelques-uns , je programme avec visual c++.

    merci.

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/09/2010, 21h25
  2. (Wireshark) Sniffer les paquets d'autres clients
    Par Superne0 dans le forum Réseau
    Réponses: 3
    Dernier message: 24/02/2010, 15h32
  3. Réponses: 12
    Dernier message: 11/06/2009, 11h36
  4. savoir à quel paquet appartient un fichier ?
    Par mamelouk dans le forum Administration système
    Réponses: 4
    Dernier message: 30/03/2007, 11h12

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