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

Télécharger Windows 7 Home Basic Color Changer
Télécharger Windows 7 Home Basic Color Changer
Changeur de couleurs Windows 7 Home Basic. Windows 7 Home Basic Color Changer est un moyen de changer la couleur de la barre des tâches et des fenêtres dans Windows 7 Home Basic.Caractéristiques de l'application: Interface conviviale ce qui se rapproche de la fenêtre de couleur d'origine de Windows 7 La langue du système d'exploitation dépendait du texte des contrôles Animation de couleur lorsque vous changez la couleur de la coloration automatique de Windows ( comme cela a été démontré
Activer le défilement fluide dans Google Chrome
Activer le défilement fluide dans Google Chrome
Dans Google Chrome, il existe une fonction secrète cachée qui permet un effet de défilement très cool et fluide pendant que vous parcourez les pages Web et que vous faites défiler de haut en bas avec le clavier, l'écran tactile ou la souris. Si vous souhaitez l'essayer, voici comment vous pouvez l'activer. Publicité Comme vous le savez peut-être déjà,
Comment obtenir des éclats irisés dans Dead by Daylight
Comment obtenir des éclats irisés dans Dead by Daylight
Si vous souhaitez charger des avantages enseignables avant votre prochaine session Dead by Daylight, vous aurez besoin de fragments. Mettre la main sur des éclats irisés est l'un des principaux moyens par lesquels vous allez
Ajustement du registre pour désactiver les notifications du centre d'action dans Windows 7
Ajustement du registre pour désactiver les notifications du centre d'action dans Windows 7
Sous Windows 7, le centre de maintenance vous informe sur diverses tâches de sécurité et de maintenance. Il affiche une icône d'indicateur dans la zone de notification et vous montre des info-bulles lorsque Windows nécessite une action de votre part, par exemple lorsque des mises à jour doivent être installées, des fichiers doivent être sauvegardés ou lorsque vous n'avez pas
Comment activer les cookies dans votre navigateur
Comment activer les cookies dans votre navigateur
Découvrez comment activer les cookies dans votre navigateur Web préféré sur plusieurs appareils et systèmes d'exploitation.
Revue Jawbone UP3 : la société est en liquidation
Revue Jawbone UP3 : la société est en liquidation
Mise à jour : Jawbone est en liquidation depuis le 19 juin 2017. Si vous êtes à la recherche d'un tracker de fitness, notre guide 2017 vous montre comment choisir le bon appareil portable pour vous. L'examen initial se poursuit ci-dessous. JE'
Comment corriger certains paramètres gérés par le bogue de votre organisation dans Windows 10
Comment corriger certains paramètres gérés par le bogue de votre organisation dans Windows 10
Windows 10 est destiné à être utilisé à la fois par les consommateurs et les entreprises, et comprend des fonctionnalités de sécurité importantes pour ce dernier groupe qui limitent l'accès des employés aux fonctions critiques. Mais certains utilisateurs grand public de Windows 10 rencontrent un bogue qui fait croire au système d'exploitation qu'il appartient à l'organisation inexistante de l'utilisateur. Voici comment les consommateurs qui possèdent leur propre PC peuvent résoudre le problème