2013-05-28 9 views
0

Notre équipe travaille actuellement à la construction d'un dissecteur à fils qui disséquent un certain type de paquet. nous avons construit notre paquet basé sur un modèle. Dites le nom du plugin que nous construisons est ABC, maintenant notre objectif est que chaque fois que nous tapons ABC dans la boîte de filtre dans wireshark, nous voulons voir (capturer) le paquet que nous avons envoyé. Comme vous pouvez le voir dans l'image, si nous le filtrons par ip.destination, wireshark sait que ce sont les paquets qui nous intéressent. La tâche actuelle est que lorsque je tape le nom du plug-in ABC, je veux le même résultat. Je m'excuse si la question n'est pas limpide, nous venons juste de commencer et nous sommes toujours dans une phase initiale. Toute astuce ou suggestion est grandement appréciée! Faites votre dissecteur plugin comme vous le feriez normalement, comme documenté dans la page this page[wireshark] comment utiliser un plug-in pour disséquer un paquet

Répondre

2

Comme indiqué dans le lien, lorsque vous enregistrez votre protocole en utilisant proto_register_protocol() sous proto_register_ABC(), la chaîne abbrev fournie comme troisième argument est enregistrée en tant que nom de filtre.

Vous trouverez des informations sur la création de plugins dans le fichier "doc/README.plugins". Si vous souhaitez enregistrer des filtres pour les structures de données dans votre paquet (vous pouvez voir le lien ci-dessus pour les instructions), recherchez la fonction proto_register_ABC() (ici ABC est votre nom de protocole), ajoutez votre membre de données à la tableau statique "hf_register_info hf []" comme indiqué ci-dessous.

void 
proto_register_ABC(void) 
{ 
    static hf_register_info hf[] = { 
     { &hf_foo, 
      { "FOO member", "foo", FT_BYTES, 
      BASE_NONE, NULL, 0x0, NULL, HFILL }} 
     }; 

hf_foo devra être déclaré. Vous deuxième chaîne dans:

{ "FOO member", "ABC", FT_BYTES, 
       BASE_NONE, NULL, 0x0, NULL, HFILL }} 

dire la deuxième chaîne « foo » est le nom de votre filtre. Maintenant, si votre fonction de dissecteur dissect_ABC() fonctionne correctement, alors vous pourrez filtrer automatiquement vos paquets de protocole en utilisant "ABC". Vous pouvez également regarder comment cela est fait pour d'autres dissection comme "TCP" pour des exemples. Regardez sous "epan/dissectors/packet-tcp.c".

Questions connexes