Principal Autre Comment utiliser le dissecteur Lua dans Wireshark

Comment utiliser le dissecteur Lua dans Wireshark



En tant que l'un des meilleurs outils de capture de paquets réseau au monde, Wireshark vous permet d'atteindre des paquets de données spécifiques afin que vous puissiez les analyser à la fois hors ligne et en temps réel. Considérez l'application comme un moyen d'examiner de près les données circulant sur votre réseau, ce qui vous permet de détecter les problèmes et les irrégularités.

  Comment utiliser le dissecteur Lua dans Wireshark

Vous pouvez utiliser des dissecteurs si vous souhaitez analyser une partie spécifique des données d'un paquet. Comme son nom l'indique, ce processus 'dissèque' le code, vous permettant de supprimer certains aspects qui nécessitent votre attention. Ce didacticiel explique comment créer et utiliser des dissecteurs dans Wireshark à l'aide du langage de script Lua.

Avant de commencer - Ce que vous devez savoir sur les dissecteurs

Bien que les dissecteurs offrent un moyen rapide d'analyser des parties d'un paquet de données dans Wireshark, ils doivent suivre certains protocoles pour fonctionner efficacement. Ces protocoles comprennent les éléments suivants :

puedes descargar kodi en chromecast
  • Chaque dissecteur que vous créez doit être enregistré pour gérer un type défini de charge utile à partir d'un protocole différent. Pour terminer cet enregistrement, vous devez attribuer un objet 'Proto' à votre dissecteur, que vous verrez ci-dessous.
  • Lorsque vous appelez un dissecteur via Wireshark, il reçoit trois choses de l'application :
    • Objet TVB – Un tampon TVB du paquet de données.
    • Objet TreeItem – Une racine d'arbre qui représente un nœud unique dans un arbre de données.
    • Objet Pinfo - Un enregistrement d'informations sur les paquets.
  • Vous ne pouvez appeler un dissecteur que si votre paquet de données correspond au DissectorTable que vous avez défini sur votre objet 'Proto'.
    • Vous pouvez contourner cette exigence en forçant l'utilisation d'un dissecteur via la fonction 'Decode As'. Mais même dans ce cas, vous ne pouvez forcer le dissecteur que si le DissectorTable que vous avez défini sur votre objet 'Proto' est du type correct.

Configuration de votre dissecteur à l'aide de LUA

Comme Wireshark est à la fois écrit et utilise le langage de programmation C, la plupart des dissecteurs sont écrits de la même manière en C. Cependant, vous pouvez utiliser Lua. Ce langage de script est plus simple que le C et donc plus accessible aux débutants en codage ou à ceux qui veulent simplement créer un dissecteur en utilisant un langage plus léger.

Bien que votre code soit plus simple, le dissecteur que vous obtenez en utilisant Lua est généralement plus lent que celui que vous créeriez en utilisant C. Néanmoins, voici les étapes à suivre si vous souhaitez créer un dissecteur Wireshark en utilisant Lua.

Étape 1 - Configurer Lua dans Wireshark

Vous devrez configurer Lua si vous ne l'avez pas utilisé dans Wireshark auparavant :

  1. Cliquez sur 'Aide', suivi de 'À propos de Wireshark'.
  2. Cliquez sur 'Dossiers'.
  3. Choisissez l'une des options suivantes pour créer un script Lua actif :
    • Plugins Lua mondiaux
    • Plugins Lua personnels
    • Personnel

Une fois activé, votre script sera prêt à chaque démarrage de Wireshark. Chaque fois que vous apportez une modification à ce script, vous devez soit redémarrer Wireshark pour enregistrer la modification, soit appuyer sur 'Ctrl + Maj + L' pour recharger tous vos scripts Lua afin d'activer vos modifications.

¿Cómo convierto un archivo WAV a MP3?

Étape 2 - Les étapes de base pour créer votre dissecteur

Si vous connaissez déjà Lua, vous pouvez utiliser les étapes suivantes pour créer votre propre script dissecteur qui fonctionnera dans Wireshark :

  • Déclarez le protocole de votre dissecteur, ce qui vous oblige à définir à la fois un nom long à utiliser dans l'arborescence des protocoles et un nom court qui sert de nom de filtre d'affichage du dissecteur.
    • Créez les trois champs suivants, avec leurs types appropriés :
    • Question – Affiche le type de question.
    • Réponse – Affiche le type de réponse.
  • MessageType – Indique si votre paquet demande une question ou une réponse.
  • Enregistrez vos champs afin que Wireshark sache comment les afficher. Sans champs enregistrés, vous recevrez un message 'Erreur Lua', vous indiquant généralement que votre Tree Item ProtoField n'est pas valide.
  • Créez une fonction de dissection qui inclut le Pinfo mentionné précédemment (contenant des données sur votre paquet) et l'élément d'arbre (créant l'arbre que vous ajouterez à un sous-arbre). Vous devez également créer un 'tampon', qui se trouve au-dessus de votre TCP.
  • Spécifiez à la fois le protocole et le port pour lesquels Wireshark doit utiliser le dissecteur. Par exemple, vous pouvez définir le protocole sur 'TCP' et le numéro de port sur celui que vous souhaitez utiliser.

Étape 3 - Ajoutez votre dissecteur à Wireshark

En ce moment, votre dissecteur est comme une ampoule sans électricité. Il existe, mais il ne vous est d'aucune utilité tant que vous ne pouvez pas y faire passer de l'énergie. En d'autres termes, votre dissecteur n'est pas encore ajouté à Wireshark, vous devez donc l'ajouter manuellement pour le faire fonctionner en suivant ces étapes :

  1. Cliquez sur 'Aide' et dirigez-vous vers le menu 'À propos de Wireshark'.
  2. Sélectionnez l'onglet 'Dossier' pour trouver une liste de chemins pour votre fichier Lua.
  3. Choisissez 'Plugins Lua personnels'. Créez un répertoire si nécessaire.
  4. Copiez et collez le fichier Lua que vous avez créé dans le répertoire 'Personal Lua Plugins'. Rechargez Wireshark pour allumer le dissecteur.

C'est une bonne idée d'effectuer un test sur votre nouveau dissecteur en ouvrant certains des paquets que vous avez capturés. Wireshark devrait fournir un message indiquant le nom long que vous avez choisi pour votre dissecteur, ainsi que des informations sur le type de message (question ou réponse) et le résultat de votre vérification.

Quelques exemples de code

Si vous n'avez jamais créé de dissecteur auparavant (ou si vous êtes nouveau sur Lua), Wireshark propose un exemple pratique de dissecteur à essayer :

local p_multi = Proto("multi", "MultiProto");
local vs_protos = {
    [2] = "mtp2",
    [3] = "mtp3",
    [4] = "alcap",
    [5] = "h248",
    [6] = "ranap",
    [7] = "rnsap",
    [8] = "nbap"
}
local f_proto = ProtoField.uint8("multi.protocol", "Protocol", base.DEC, vs_protos)
local f_dir = ProtoField.uint8("multi.direction", "Direction", base.DEC, { [1] = "incoming", [0] = "outgoing"})
local f_text = ProtoField.string("multi.text", "Text")
p_multi.fields = { f_proto, f_dir, f_text }
local data_dis = Dissector.get("data")
local protos = {
    [2] = Dissector.get("mtp2"),
    [3] = Dissector.get("mtp3"),
    [4] = Dissector.get("alcap"),
    [5] = Dissector.get("h248"),
    [6] = Dissector.get("ranap"),
    [7] = Dissector.get("rnsap"),
    [8] = Dissector.get("nbap"),
    [9] = Dissector.get("rrc"),
    [10] = DissectorTable.get("sctp.ppi"):get_dissector(3), -- m3ua
    [11] = DissectorTable.get("ip.proto"):get_dissector(132), -- sctp
}
function p_multi.dissector(buf, pkt, tree)
    local subtree = tree:add(p_multi, buf(0,2))
    subtree:add(f_proto, buf(0,1))
    subtree:add(f_dir, buf(1,1))
    local proto_id = buf(0,1):uint()
    local dissector = protos[proto_id]
    if dissector ~= nil then
        -- Dissector was found, invoke subdissector with a new Tvb,
        -- created from the current buffer (skipping first two bytes).
        dissector:call(buf(2):tvb(), pkt, tree)
    elseif proto_id < 2 then
        subtree:add(f_text, buf(2))
        -- pkt.cols.info:set(buf(2, buf:len() - 3):string())
    else
        -- fallback dissector that just shows the raw data.
        data_dis:call(buf(2):tvb(), pkt, tree)
    end
end
local wtap_encap_table = DissectorTable.get("wtap_encap")
local udp_encap_table = DissectorTable.get("udp.port")
wtap_encap_table:add(wtap.USER15, p_multi)
wtap_encap_table:add(wtap.USER12, p_multi)
udp_encap_table:add(7555, p_multi)

Postdissecteurs et dissecteurs chaînés

Vous voudrez peut-être approfondir un peu l'utilisation de votre dissecteur une fois que vous aurez maîtrisé leur création en Lua. Wireshark propose deux types supplémentaires de dissecteurs - les postdissecteurs et les dissecteurs enchaînés - qui offrent plus de fonctionnalités.

Un postdissecteur ressemble beaucoup à une vérification finale de tous les dissecteurs que vous avez exécutés pour un paquet. Vous l'enregistrez pour être averti une fois que Wireshark a appelé tous les autres dissecteurs que vous souhaitez utiliser, et vous pouvez l'utiliser pour filtrer les colonnes 'Protocole' et 'Info'. Cette fonctionnalité est particulièrement utile si vous souhaitez filtrer plusieurs paquets dans une session où vous avez eu un long écart entre les ensembles de données et que vous ne pouvez pas rappeler chacun individuellement.

Le chaînage des dissecteurs remplit une fonction similaire (au moins en termes de filtrage à travers les dissecteurs précédemment utilisés) en vous donnant accès aux données d'un seul dissecteur. Le principal avantage ici est que le dissecteur chaîné n'a pas à parcourir à nouveau chaque paquet, ce qui vous donne un résultat sans vous obliger à attendre que le dissecteur d'origine s'exécute à nouveau.

como multiplicar en hojas de google

Disséquer en Lua

Étant donné que Wireshark offre déjà la possibilité de créer des dissecteurs en C (son langage naturel), vous ne verrez peut-être pas la nécessité de les créer également en Lua. Pourtant, ceux qui ne sont pas à l'aise avec C, ainsi que ceux qui maîtrisent déjà Lua, peuvent trouver que le script léger de Lua facilite la création de leurs dissecteurs. Certes, vous devez échanger un temps de chargement plus long lorsque vous exécutez le processus par rapport aux dissecteurs basés sur C, mais il est utile d'avoir l'option malgré tout.

Cela dit, nous voulons vous entendre. À quelle fréquence utilisez-vous des dissecteurs dans Wireshark ? Avez-vous déjà essayé de les créer en C, et quels avantages pensez-vous que la création de dissecteurs en Lua apporte ? Faites-nous savoir dans la section commentaires ci-dessous.

Des Articles Intéressants

Choix De L'Éditeur

Ajouter la barre d'outils Dépannage à la barre des tâches dans Windows 10
Ajouter la barre d'outils Dépannage à la barre des tâches dans Windows 10
Comment ajouter la barre d'outils Dépanneurs à la barre des tâches de Windows 10 Au lieu ou en plus du menu contextuel Dépanneurs, vous pouvez également avoir une barre d'outils dans la barre des tâches qui permet de lancer directement des dépanneurs Windows individuels dans Windows 10. C'est très utile pour les moments où vous découvrez ce qui ne va pas avec
Comment vérifier la compatibilité de la RAM et de la carte mère
Comment vérifier la compatibilité de la RAM et de la carte mère
Pour vous assurer que votre RAM et votre carte mère sont compatibles, choisissez le bon facteur de forme, la génération DDR, la capacité de stockage, la vitesse et la taille.
Comment envoyer un DM à quelqu'un dans TikTok
Comment envoyer un DM à quelqu'un dans TikTok
https://www.youtube.com/watch?v=J9JlCgAwsnA La montée en puissance de TikTok est un spectacle à voir. Même si vous n'êtes pas particulièrement averti des médias sociaux, vous avez probablement entendu parler de cette nouvelle chose qui a tous les
Comment obtenir plus de colons dans RimWorld
Comment obtenir plus de colons dans RimWorld
Les colons sont l'un des aspects essentiels de RimWorld. Ils cultivent de la nourriture, commercent avec d'autres parties, recherchent des technologies de pointe et stockent des ressources pour prospérer leurs communautés. Puisqu'ils sont si influents, vous devez augmenter leur nombre, mais comment faire
Comment faire des autocollants pour TikTok
Comment faire des autocollants pour TikTok
Les stickers sont à la mode sur tous les réseaux sociaux. Facebook a été le premier à les ajouter à l'application Messenger, et la tendance a décollé. TikTok, étant la plate-forme très populaire, comporte bien sûr des autocollants. Beaucoup veulent savoir comment personnaliser
Ajouter et supprimer des comptes utilisés par d'autres applications dans Windows 10
Ajouter et supprimer des comptes utilisés par d'autres applications dans Windows 10
Comment ajouter et supprimer des comptes utilisés par d'autres applications dans Windows 10. Dans Windows 10, vous pouvez définir des comptes d'utilisateurs qui seront utilisés par les applications du magasin installées inst
Comment créer des flashcards sur Word
Comment créer des flashcards sur Word
Créer des flashcards à la main peut prendre beaucoup de temps. Apprenez plutôt à créer des flashcards sur Microsoft Word pour rationaliser le processus et disposer de plus de temps pour apprendre.