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 :

Format des logs Pcap / TcpDump


Sujet :

C++

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Format des logs Pcap / TcpDump
    Bonjour et coucou steak si tu me lis

    Bref ...

    Je suis en train de faire un sniffer et j'aurai besoin d'aide sur la librairie pcap (ou plus exactement winpcap pour ma part mais bon c'est la meme chose)

    il fonctionne pas mal pour l'instant mais le soucis que j'ai c'est la lecture du fichier de log (parsage)

    Apres analyse, j'ai trouvé comme un grand que les 24 premiers bytes sont le headers du fichier de log puis viennent les paquets précédés de 16 bytes de header propres a chaque paquet (bref leur taille, le timestamp, ...)


    Mais ca c'est bien mais je me pose 2 questions :
    1/ Est ce standard a toutes les versions de pcap ? (sinon je suis dans la merde )
    2/ Est ce que quelqu'un connait l'exact signification des bytes des differents headers

    J'ai bien cherché sur le net mais j'ai rien trouvé (et pourtant google est mon ami...)

    Merci a tous de vos réponses

    PS : je pense que je suis sur le bon forum mais m'en veuillez pas si je me suis gourré car c'est mon premier post ici sur les conseils de steak (d'ailleurs ca a l'air pas mal du tout ... )

  2. #2
    Membre actif Avatar de Steki-kun
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 222
    Points : 281
    Points
    281
    Par défaut Re: Format des logs Pcap / TcpDump
    Citation Envoyé par Kikx
    Bonjour et coucou steak si tu me lis
    j'm'appelle Steki-kun ici, kikxounet !
    PS : je pense que je suis sur le bon forum mais m'en veuillez pas si je me suis gourré car c'est mon premier post ici sur les conseils de steak (d'ailleurs ca a l'air pas mal du tout ... )
    non mais! je t'ai jamais dit de poster sur 'c++' !! d'ailleurs je pense que t'aurais dû poster ailleurs, y'a des forums aux topics bcp plus précis et puis pas de nom à la radio...

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Re: Format des logs Pcap / TcpDump
    Citation Envoyé par Steki-kun
    j'm'appelle Steki-kun ici, kikxounet !
    oups

    Citation Envoyé par Steki-kun
    non mais! je t'ai jamais dit de poster sur 'c++' !! d'ailleurs je pense que t'aurais dû poster ailleurs, y'a des forums aux topics bcp plus précis et puis pas de nom à la radio...
    Ben je vois pas trop justement
    c'est quand meme un sniffer c++

  4. #4
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut
    oui sur la doc de winpcap...

    http://winpcap.polito.it/docs/man/html/index.html

    et il me semble que cet entete ajouter a chaque trame capture est aussi ajoute avec libpcap (mais je suis pas sur)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Moi je veux bien mais je trouve toujours pas cette fameuse structure ...
    je dois etre donc doué comme un pied mais la je coinche ...

    Je parle bien de la structure de stockage des paquets

  6. #6
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut
    c est dans la le lien que je t ai passe

    tu recuperer tes trames avec une fonction de callback:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //Appel de la fonction de callback
        pcap_loop(adhandle, 0, packet_handler, NULL);
    Fonction ou tu recupere tes trames

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)
    en fait header va contenir les infos de la trame comme la date et la taille
    et pkt_data va contenir ta trame (les octets) les 6 premiers octet de pkt_data sont une adresse mac et ainsi de suite...
    le header contien la date et la taille de la trame

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Fry
    en fait header va contenir les infos de la trame comme la date et la taille
    et pkt_data va contenir ta trame (les octets) les 6 premiers octet de pkt_data sont une adresse mac et ainsi de suite...
    le header contien la date et la taille de la trame

    Ahhhhhhhhhhhhhhhhhhhhhhh

    Je crois qu'on s'est mal compris ...
    Nan c'est bon je maitrise correctement ces fonctions c'est pas le problème ici...

    J'essaye d'etre plus clair
    Je lit correctemnt les paquets "en live" mais l'interet pour moi c'est de stocker certaine info en ram dans un liste mais je vais quand meme pas tout stocké en ram ... sinon ca risque d'exploser ...
    Donc l'idée c'est que je stocke les infos les plus importantes en liste comme l'ip et les macs et je stock aussi un offset qui pointe vers le debut paquet dans le fichier de log

    Comme ca c'est rapide pour y acceder et tout et tout

    Le problème est donc pour le calcul de cette offset, j'ai trouvé une "loi empirique" qui fonctionne actuelementet que j'ai cité plus haut mais je ne suis absolument pas sur que cette loi est generique pour toute les versions de pcap ...

    voila voila ...

    est que j'ai été plus clair la ?

    désolé c'est un peu pointu comme question

  8. #8
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut
    en fait le dump dans le fichier est coder par toi ou tu utilise les fonctions de winpcap?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    j'utilise les fonctions de winpcap stocker ...
    voici let de code que j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while((res=pcap_next_ex(fp,&header,(const u_char**) &pkt_data))>= 0){
         if(res != 0) { // le timeout n'est pas arrivé
             pcap_dump((u_char*) fpd, header, pkt_data);
         }
         if (sniffThread.etat==DEMANDE_FERMETURE) {
             break ;
         }
    }
    voilà
    le but est qd meme de garder un fichier portable ...

  10. #10
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut libpcapnav
    Pour ceux que ça interresse, il existe la librairie libpcapnav qui possède de nombreuses fonctions déjà implémentées permetant d'utiliser un fichier pcap. Je l'ai utilisé et elle est vraiment simple d'utilisation.
    ( Il existe aussi la libnetdude )

    lien : http://netdude.sourceforge.net/

Discussions similaires

  1. Ou trouver le format des fichiers log de nessus
    Par hella.essafi dans le forum Sécurité
    Réponses: 1
    Dernier message: 06/02/2014, 15h53
  2. Format des log sous glassfish 2.1
    Par woodwai dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 08/04/2010, 10h55
  3. Format des archives logs après l'activation de FRA
    Par dari68 dans le forum Recovery Manager
    Réponses: 2
    Dernier message: 30/01/2009, 11h06
  4. tcpdump : format des données
    Par gibson700 dans le forum Réseau
    Réponses: 3
    Dernier message: 20/08/2008, 19h30
  5. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 12h08

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