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

Comment voir les données utilisateur sur qui a regardé votre vidéo YouTube
Comment voir les données utilisateur sur qui a regardé votre vidéo YouTube
YouTube collecte des données auprès de ses téléspectateurs. Ces informations sont utiles pour développer une compréhension des types de personnes qui regardent des vidéos spécifiques. Si vous voulez en savoir plus sur les personnes qui regardent vos vidéos, vous êtes au bon endroit.
Test de la Huawei Watch 2: une solide montre intelligente Android Wear
Test de la Huawei Watch 2: une solide montre intelligente Android Wear
L'industrie de la smartwatch stagne ces derniers temps, il était donc bon de voir un grand lancement au MWC 2017 après des mois de très peu d'activité. La Huawei Watch 2 a été dévoilée aux côtés du dernier smartphone phare de Huawei - le
Conseil: créez une clé USB de récupération pour Windows 8.1 et Windows 8
Conseil: créez une clé USB de récupération pour Windows 8.1 et Windows 8
Apprenez à créer une clé USB de récupération pour Windows 8.1 et Windows 8 qui peut être utilisée pour réparer un système d'exploitation non amorçable.
Comment transférer des cassettes vidéo 8 mm et Hi8 sur DVD ou VHS
Comment transférer des cassettes vidéo 8 mm et Hi8 sur DVD ou VHS
Vous pouvez transférer des cassettes sur DVD ou VHS en connectant le caméscope au magnétoscope ou au lecteur DVD ou à un ordinateur (DVD uniquement).
Comment ajouter un autre compte sur Telegram
Comment ajouter un autre compte sur Telegram
Êtes-vous fatigué de jongler avec les chats personnels et les conversations professionnelles sur Telegram ? Si tel est le cas, vous pourriez probablement bénéficier d'avoir plus d'un compte Telegram à votre nom. Le support multi-comptes de Telegram en fait le choix parfait pour ceux
Comment différer les mises à niveau dans Windows 10
Comment différer les mises à niveau dans Windows 10
Dans cet article, nous verrons comment différer les mises à jour de fonctionnalités dans Windows 10 pour empêcher l'installation de nouvelles versions. Vous pouvez également reporter les mises à jour de qualité.
Skype lance Meet Now: visioconférences sans inscription ni installation
Skype lance Meet Now: visioconférences sans inscription ni installation
Microsoft a lancé une nouvelle expérience d'appel pour Skype. Une nouvelle fonctionnalité, appelée Meet Now, permet d'organiser des conférences en toute simplicité. Aucune inscription ou téléchargement requis. Meet Now dans Skype vous permet de configurer facilement un espace de collaboration et d'inviter à la fois des contacts Skype et des amis ou des membres de la famille qui ne sont pas sur Skype. Les participants peuvent alors