Détournement de Nabaztag et reverse engineering


Nabaztag

Nabaztag

J’ai reçu à Noël dernier une jolie petite bestiole. Un bon gadget de geek :) Le Nabaztag.

Très bonne idée à la base, le concept est intéressant, c’est typiquement le genre de truc qui m’intéresse. Sauf … que ce Nabaztag est finalement un peu trop inutile à mon goût et surtout bien trop contrôlé par la société qui le vend, à savoir la société Violet. Déjà, qu’est-ce que cette petite bestiole ? Il s’agit en fait d’un terminal connecté à Internet en wifi par lui même et qui peut interagir à la fois avec du contenu sur Internet et avec l’utilisateur. Il est alors possible de lire la météo, suivre ses emails, écouter la radio, écouter des podcast, lire des flux en streaming, suivre des flux RSS, etc. Notre ami lapin clignote de partout et bouge les oreilles dans tous les sens et peut même lire des puces RFID. Bref une bonne idée dans l’absolu, mais finalement ce lapin m’a plus énervé que servi pour l’instant. J’écoute beaucoup de webradio sur Internet, on peut charger des radios sans problème … sauf que notre ami lapin lit comme un abruti les trames METADATA (titres des musiques entre autres) des flux http des radios. Du coup on a droit à des gros parasites aléatoires dans la musique, parce que le lapin essaye de faire lire du texte au lieu du flux mp3… ahah bien joué !

Second truc qui m’embête pas mal. Le lapin se connecte par Internet au serveur de Violet. Le système embarqué au sein du lapin n’est pas super puissant, donc tout le traitement a lieu, semblerait-il, de manière déportée, le lapin ne reçoit que des commandes.En gros si la société fait faillite ou arrête le développement du lapin … le lapin devient hors d’usage. J’ai quand même du mal à me savoir dépendant d’une société pour utiliser un objet comme celui-ci. En dehors du fait que le lapin n’est pas super fiable, dépend du serveur de violet pour fonctionner comme réveil ou lire ses mails etc, le gadget reste intéressant, mais hélas ça reste un gadget. Je n’ai pas réussi à l’intégrer dans ma vie de tous le jours. Dommage.

En dehors des services de base proposés par Violet pour le nabaztag, la société a créé une API pour permettre aux propriétaires de Nabaztag de le commander eux mêmes, c’est à dire faire bouger les oreilles, lancer des flux mp3 à la demande, lancer le synthétiseur de parole, etc. Mais, même problème ce ne sont que de simples requêtes HTTP qui ne permettent pas d’aller bien loin. Et puis accessoirement, le lapin est carrément manipulable depuis n’importe quel coin de la planète, du moment qu’une personne a l’identifiant de votre lapin (sorte d’adresse MAC). Vous avez vite fait de tomber par hasard sur l’adresse d’un lapin existant.

Bref, après moins de 2 semaines de tentatives d’utilisation je n’ai pas résisté à la tentation de démonter cette petite bestiole. Il s’avère qu’elle cache du matériel plutôt sympathique, et j’ai découvert avec joie qu’elle disposait d’un port JTAG, permettant de programmer le processeur directement.

Nabaztag Démonté

Nabaztag Démonté

Carte embarquée du Nabaztag

Carte embarquée du Nabaztag

J’ai pu donc diséquer le lapin et découvrir ce qu’il se trouvait à l’intérieur:

  • 2 moteurs continus pour faire bouger les oreilles
  • Un lecteur de puce RFID
  • Un micro
  • Une prise jack reliée à la carte son
  • Un potentiomètre pour régler le volume
  • Une carte wifi
  • Un haut parleur
  • Des DELs associées et leurs cônes de direction pour avoir de jolies petits ronds lumineux sur la coque par transparence
MCBSTM32 - Carte de développement pour processeur ARM

MCBSTM32 - Carte de développement pour processeur ARM

Je ne vais pas détailler minutieusement tous les composants de la carte principale. Quelqu’un s’en est déjà chargé sur ce blog. Je peux lire sur le processeur « OKI L670405I – INNN, ARM 722EBAUJ ». Il semblerait qu’il s’agisse d’un processeur ARM7 TDMI, ce processeur pourrait d’après mes recherches (je n’en suis pas sûr) être programmé par une carte de développement qui vaut 229$. Ahah la bonne blague ! Il doit peut être y avoir moyen de trouver un moyen moins cher, mais je ne le connais pas encore.

Du coup j’essaye de découvrir comment reprogrammer le processeur pour y mettre un Firmware maison et libre de surcroit. En gros dans l’idée de permettre aux gens d’utiliser leur nabaztag sur des serveurs qui ne sont pas ceux de Violet. (Free your rabits !!!) Cela impliquerait un certain travail, analyse minutieuse des specifications matérielles, reprogrammation des drivers, reprogrammation des protocoles de communication, reprogrammation d’un serveur etc. Mais c’est le genre de projet qui m’intéresserait vraiment : refaire de A à Z le firmware à des fins pédagogiques. J’essaye de contacter des gens sur Internet qui semblent intéressés par la libération des lapins, pour l’instant pas de réponse positive. Mais je cherche toujours ! Pour l’instant je ne sais pas trop par où commencer avec le peu de connaissances et de matériel que j’ai à ma disposition. Mais si par hasard, vous êtes intéressé par une telle entreprise n’hésitez pas à me contacter.

, , , , ,

  1. #1 by Alp - mai 8th, 2009 at 20:13

    Bon courage, ça serait carrément excellent de pouvoir en faire ce que tu veux, vu le matos qu’il embarque déjà !

  2. #2 by Aquanum - mai 8th, 2009 at 20:28

    Héhé merci il va en falloir du courage ^^ Sinon ué, complètement, il y a moyen de faire des trucs stylés. Mais il faut passer par un désassemblage ASM du Firmware pour en savoir plus sur l’utilisation du matériel, ce qui n’est pas super simple. J’ai trouvé des gens sur Internet à la recherche d’aide pour faire ça, je les ai contactés. J’attends leur réponse, on verra bien. Mais ça doit être pas mal formateur de réussir à faire ça :)

  3. #3 by libjch - mai 9th, 2009 at 14:47

    J’aime bien le concept du ‘free your rabbit’, mais ca l’air quand même bien trash =/. Tout ceux qui voudront customizer leur lapins devront acquérir la carte à 230€ ?

  4. #4 by Aquanum - mai 9th, 2009 at 19:56

    A vrai dire je ne sais pas trop encore. Je pense qu’il y aurait quand même moyen de le faire autrement. il semblerait que l’on puisse brancher directement le port JTAG à un PC via un cordon USB ou parallèle. Enfin pour l’instant je continue mes recherches, je n’ai pas trop encore d’idées sur la manière de faire ça. mais si la seule solution est d’acheter une carte à 230€, j’abandonnerai carrément l’idée…

  5. #5 by spirit - mai 12th, 2009 at 09:11

    Juste pour vous confirmer la chose, oui vous pouvez re-programmer le lapin complètement à partir du port JTag. Il vous suffit d’un cable adaptateur plus d’un logiciel adapté. Pas besoin de dépenser 229$…

  6. #6 by Aquanum - mai 12th, 2009 at 16:11

    Ah effectivement, merci spirit. Vous connaissez d’éventuels logiciels à utiliser dans mon cas ?

  7. #7 by jinbei - mai 13th, 2009 at 16:08

    Bonjour, juste une idée comme ça…Si le lapin se connecte au serveur de la société Violet, en analysant le trafic réseau, il devrait y avoir moyen de créer un serveur qui se ferait passer pour celui de la société Violet au sein de votre réseau non ? Par contre il va falloir gérer toutes les fonctionnalités tel que le mail, la lecture de radio…mais en déléguant ces taches à d’autres programmes dont c’est le rôle ça devrait pas être trop compliqué (et il s’agit de ne pas recréer la roue). Ca permettra au moins une indépendance vis à vis de la société. Ensuite, dans un deuxième temps, il me semble que les FAI peuvent mettre à jour le firmware des *box via internet, donc, peut être, que c’est également possible pour le lapin. Par contre à moins de guetter le trafic réseau en espérant une maj du lapin, je ne vois pas comment découvrir le protocole pour mettre à jour le lapin par vous même (si ce dernier existe). Maintenant si depuis le début je suis totalement à coté de la plaque, désolé pour le flood ^^.
    Bon courage quoiqu’il en soit =)

  8. #8 by Aquanum - mai 13th, 2009 at 20:23

    Alors en fait l’idée d’analyser le réseau n’est pas bête du tout, au contraire. Mais ce qui m’embête n’est pas de dépendre de Violet dans l’absolu, mais d’être limité dans les possibilités du lapin. Typiquement j’aimerais reprogrammer le système de lecture des webradios, comme je l’ai expliqué un peu plus haut. Et cela n’est possible qu’en bidouillant le Firmware. De la même façon je serais intéressé par le développement de mes propres programmes en C sur le lapin pour être illimité en terme de possibilités, surtout que les applications actuelles de Violet ne me conviennent pas toujours, et l’API qu’ils proposent c’est du bidouillage qui ne permet pas grand chose.

    Sinon il y a possibilité de réinstaller le Firmware sur le Lapin depuis Violet. Du coup je peux sans doute regarder de ce côté là et voir si je ne pourrais pas essayer de le chopper au passage pour le désassembler.

  9. #9 by Calvin1602 - juin 11th, 2009 at 20:40

    Moué.
    OK pour le JTAG, tu vas réussir à choper le firmware, la belle affaire.
    Sauf que j’émets quelques réserves sur le fait que le synthétiseur de voix et tous ces machins soient codés dans le firmware, ou même seulement codés par Violet.
    Est-ce quoi que ce soit empêcherait que ce soit un Linux embarqué qui tourne là dessus ? Personnellement je vois pas. Le meilleur moyen que je verrais, c’est obtenir un accès root. Je dis pas que c’est facile (surtout sans avoir de lapin désossé sous les yeux), seulement que ça me paraît moins irréaliste ^^

    Aqua, tu disais qu’ils proposaient une API. Tu peux développer ?

  10. #10 by Aquanum - juin 12th, 2009 at 09:34

    Oui tu as bien raison, ça s’annonce carrément hardcore à faire à la main. Effectivement, l’idéal serait sans doute de réussir à se connecter au lapin par un moyen où un autre et y modifier que quelques parties. Mais je ne pense pas que ça soit aussi simple. La solution serait de se refaire soi même un appareil wifi intelligent. Ca serait plus formateur je pense.

    Sinon l’API dont j’ai parlé c’est ça : http://doc.nabaztag.com/api/home.html Il s’agit d’un service web qui passe par des trames http. Suivant tes attributs GET tu peux envoyer ou recevoir des infos. Mais c’est quand même pas mal limité hélas ^^

  11. #11 by Gautier - décembre 8th, 2009 at 13:57

    Je déterre le sujet.
    Le site de Violet propose une mise à jour du firmware pour passer de la version 9 à la version 10.
    Le lien direct:
    http://www.nabaztag.com/firmware/firmware.0.0.0.10.sim.txt

    A mon avis le lapin n’est qu’un lecteur de fichiers MP3 amélioré. Tout ce que le lapin sait faire, c’est exécuter les commandes telles que décrites par l’API.
    Donc tous les mp3 sont générés depuis le site de Violet, le lapin se contente de charger le mp3 et de le restituer.

    Le micro alimente sûrement un encodeur MP3, dont le résultat est envoyé à Violet.

    Le lecteur RFID lit le lien HTML contenu dans la puce, ajoute son adresse MAC et envoie à Violet qui en retour fournit une URL comme décrite par l’API.

    Le firmware ne fait que 190Ko, juste de quoi faire tenir un noyau linux, des drivers et un codec.

  12. #12 by Aquanum - décembre 10th, 2009 at 19:44

    Salut,

    Merci bien pour l’info ! Je surveille les actualités de Mindscape/Violet de près depuis quelques temps, mais je n’avais pas vu le changement de firmware. Je vais regarder ça de près ;)

(will not be published)
  1. No trackbacks yet.