Sniffer ZigBee

Introduction

Cette page explique comment réaliser un sniffer ZigBee pour écouter les communications entre des modules ZigBee ou IEEE 802.15.4. La suite de cette page a été réalisée avec les versions logicielles suivantes :

Matériel

J'ai acheté une clé USB à 5€ sur eBay. Pas sûr que ce soit une clé authentique, mais elle fait le job. L'original porte la référence OM15020 JN5169 USB Dongle vendue par NXP. Plus de détails sur cette clé sur cette page.

Vue d'ensemble du NXP OM15020 USB DONGLE, JN5169 module

Vous devriez pouvoir acheter cette clé USB via l'un des liens suivants :

Branchez la clé sur un port USB de votre PC. Un nouveau port COM devrait apparaitre. Vérifiez le numéro de port et notez-le pour plus tard. Dans mon cas, c'était le port COM4.

Re-programmer la clé

La documentation officielle stipule que la clé est livrée pré-programmée pour être un sniffer de packets IEEE802.15.4. La clé que j'ai reçue n'était pas programmée et j'ai été obligé de le faire manuellement. D'ailleurs, c'est la raison qui me fait dire que ma clé n'est pas une clé authentique.

Le programmateur

Comme la clé est basée sur le JN5169 produit par NXP, ce dernier fournit les outils de programmation associés. L'outil de programmation que j'ai utilisé est référencé JN-SW-4107 JN51xx Production Flash Programmer et peut être téléchargé sur cette page ou avec le lien suivant :

Extraire l'archive et installer le logiciel. Vérifiez et notez le chemin d'installation. Lancez une console en ligne de commande et déplacez vous dans le répertoire d'installation, dans mon cas :

$ cd C:\\NXP\\ProductionFlashProgrammer

Une fois dans le répertoire, vous pouvez vérifier que le programmateur trouve le port COM sur lequel la clé est montée avec la commande suivante :

$ JN51xxProgrammer.exe -l

Sauvegarder le firmware

Je recommande de sauvegarder le firmware présent sur la clé. Comme expliqué dans le guide d'utilisation du programmateur, la commande suivante utilise l'option -F pour sauvegarder le contenu de la mémoire flash du JN5169 sur le port série spécifié avec l'option -s :

$ JN51xxProgrammer.exe -s COM4 -F flash.bin

La commande suivante utilise l'option -E pour sauvegarder le contenu de l'EEPROM du JN5169 sur le port série spécifié avec l'option -s :

$ JN51xxProgrammer.exe -s COM4 -E eeprom.bin

Ces commandes générent deux fichiers binaires. Conservez ces fichier si vous voulez restaurer la clé.

Programmation

NXP fournit un SDK pour le JN5169 (JN-SW-4163). Ce SDK inclut le firmware du sniffer. Vous pouvez le télécharger sur le site NXP ou récupérer directement le binaire via le lien suivant :

Copiez le binaire dans le répertoire où le programmateur a été installé. La commande suivante programme la clé avec le micro-logiciel du sniffer ZigBee :

$ JN51xxProgrammer.exe -s COM4 -f JennicSniffer_JN5169_1000000_HP.bin

Ce n'est pas obligatoire, mais vous pouvez effacer l'EEPROM avec la commande suivante :

$ JN51xxProgrammer.exe -s COM4 --eraseeeprom=full

Une fois que la clé est programmée, la led rouge clignote. La clé est prête.

Logiciel d'analyse

Pour analyser les trames ZigBee, j'ai utilisé l'analyseur de protocole Ubiqua commercialisé par Ubilogix. Ce logiciel n'est pas gratuit, mais Ubilogix propose une version d'essai. La licence d'évaluation vous permet de décoder jusqu'à 1,000 paquets par session. installez le logiciel, branchez la clé et démarrez l'application.

Dans la fenêtre manager window, cliquez sur Add Device. Sélectionnez votre port COM et l'application NXP JN51xx :

Configure la clé USB dans l'analyseur de protocole Ubiqua

Lorsque la clé apparait dans votre liste de matériels, activez la clé. S'il y a du traffic ZigBee dans l'environnement de la clé, les paquets devraient apparaitre dans la fenêtre principale :

Traffic ZigBee enregistré par le sniffer

Et voilà !

Voir aussi


Dernière mise à jour : 12/10/2021