Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Un Pokémon piégé depuis 15 ans dans un Pokéwalker, et l’issue est terrible pour la pauvre bête

Un passionné a tenté de récupérer son Pokémon coincé dans un Pokéwalker, ce petit podomètre vendu avec Pokémon HeartGold sur DS en 2009, après avoir perdu la cartouche de jeu.

Entre reverse engineering du protocole infrarouge et manipulation du générateur de nombres aléatoires, la tentative est bien technique. Et le résultat est plutôt cruel, pour une raison que personne n'avait anticipée…

Un Pokémon sans cartouche, un vrai problème

Le Pokéwalker, pour ceux qui ne s'en souviennent pas, c'était ce petit podomètre vendu avec Pokémon HeartGold et SoulSilver sur Nintendo DS en 2009. Le principe était simple : vous transfériez un Pokémon de votre partie vers cet accessoire, vous le glissiez dans votre poche, et chaque pas comptait pour gagner des points et débloquer des objets.

Le tout communiquait avec la cartouche DS par infrarouge. Sauf que voilà, si vous perdez la cartouche (ce qui arrive plus souvent qu'on ne le croit après 15 ans), votre Pokémon reste coincé dans le Pokéwalker. Pas de cartouche, pas de transfert retour. C'est exactement le problème auquel s'est retrouvé confronté Etchy, un créateur de contenu spécialisé dans Pokémon Gen 4.

Du reverse engineering à l'ancienne

Le travail de fond, c'est Dmitry qui l'avait fait il y a quelques années en décortiquant complètement le Pokéwalker. A l'intérieur : un microcontrôleur Renesas H8, une EEPROM de 64 Ko, un accéléromètre Bosch et un émetteur infrarouge générique. La communication entre la cartouche et le Pokéwalker passe par un protocole IR à 115 200 bauds, et chaque octet est simplement XOR avec 0xAA avant envoi.

Dmitry avait même réussi à exécuter du code arbitraire sur l'appareil en exploitant un débordement de buffer dans la décompression. Etchy s'est appuyé sur tout ce travail pour tenter sa mission de sauvetage. Son idée : créer une nouvelle sauvegarde avec les bons identifiants pour tromper le Pokéwalker.

Le dispositif ne vérifie que la version du jeu (HeartGold ou SoulSilver), la région et les identifiants du dresseur. En manipulant le générateur de nombres aléatoires du jeu, Etchy a réussi à générer une sauvegarde avec des IDs correspondants.

Le fantôme dans la machine

Et ça a marché. En partie. Le Pokéwalker a accepté la connexion et transféré les données du Pokémon. Sauf que le vrai identifiant unique du Pokémon, son PID, celui qui définit ses stats, sa nature, son apparence, n'existe que sur la cartouche d'origine.

Le Pokéwalker ne stocke qu'une version allégée des données : l'espèce, les attaques, l'objet tenu, le genre. Le PID, lui, restait sur la cartouche perdue. Du coup, le Pokémon récupéré n'est qu'une copie incomplète. Ca ressemble à votre Typhlosion, ça porte son nom, mais ce n'est pas vraiment lui. Comme le résume Etchy dans sa vidéo : il n'y a pas de moyen de sauver un Pokémon piégé dans un Pokéwalker.

C'est le genre d'histoire qui parle à tous ceux qui ont grandi avec une DS dans la poche. On a tous eu ce moment où un accessoire, une sauvegarde ou un périphérique finissait au fond d'un tiroir, avec des données qu'on pensait sans importance.

Etchy et Dmitry montrent qu'il y a une vraie communauté prête à passer des heures sur du reverse engineering pour trois octets de données. C'est beau et un peu absurde en même temps. Le plus cruel dans l'histoire, c'est que Nintendo n'avait visiblement pas prévu qu'on puisse perdre sa cartouche tout en gardant le Pokéwalker. Bref quinze ans plus tard, votre Typhlosion attend toujours dans son petit boîtier, et personne ne viendra le chercher.

Source : Hackaday

Ban-Rays - Les lunettes qui détectent les smart glasses

De nos jours, quand un mec chelou avec des lunettes cheloues nous fixe, on ne sait plus si c’est parce qu’il nous trouve irrésistible ou s’il est en train de balancer notre tronche à une IA pour savoir qui on est. Bon, pour vous, la question se pose peut-être moins, mais vous voyez l’idée ^^.

Heureusement, pour lutter contre ça, y’a maintenant un projet open source pour détecter ces petits curieux équipés de Ray-Ban Meta ou d’autres lunettes-caméras. Ce projet s’appelle Ban-Rays (jeu de mots avec “banned”, roh roh roh) et le but c’est de créer des lunettes capables de repérer les smart glasses équipées de caméras.

Et pour arriver à cela, le dev derrière ce projet utilise deux approches complémentaires.

La première, c’est l’approche optique basée sur un principe physique assez marrant. En effet, mes capteurs CMOS des caméras ont la particularité de renvoyer la lumière infrarouge directement vers sa source. C’est ce qu’on appelle l’effet “cat-eye” ou rétro-réflectivité, du coup, en balançant des impulsions IR vers une paire de lunettes suspecte et en analysant le signal réfléchi, on peut théoriquement détecter la présence d’une caméra. Et les capteurs produisent des pics de signal bien nets et rapides, contrairement aux surfaces réfléchissantes classiques qui génèrent des ondes plus longues.

Pour le moment, les tests avec les Ray-Ban Meta montrent des résultats un peu inconsistants à courte distance (genre 10 cm), mais le principe est là et ça s’améliore. Ah oui et le matos utilisé c’est un Arduino Uno, des LEDs infrarouges (940nm et 850nm), une photodiode et un transistor. Rien de bien méchant donc niveau budget.

Et la deuxième approche, c’est côté réseau avec la détection Bluetooth Low Energy. Les Ray-Ban Meta utilisent un identifiant fabricant spécifique (0x01AB pour Meta) et un Service UUID bien particulier (0xFD5F). Le souci c’est que pour le moment, ça ne détecte les lunettes que pendant l’allumage ou le mode appairage. Pour une détection continue pendant l’utilisation normale, faudrait du matos plus costaud genre modules nRF pour sniffer les paquets CONNECT_REQ. Mais bon, ça viendra puisque c’est dans la roadmap du projet.

Alors oui, vous allez me dire que les Ray-Ban Meta ont une petite LED qui s’allume quand elles filment, donc c’est pas discret. En théorie oui auf que cette LED est tellement minuscule que la Data Privacy Commission irlandaise a carrément remis en question son efficacité comme protection de la vie privée. Et surtout, un bidouilleur propose maintenant de désactiver cette LED pour une soixantaine de dollars. Meta a bien prévu une protection qui empêche les lunettes de fonctionner si on couvre la LED avec du scotch, mais le gars a trouvé comment contourner ça et sa liste de clients s’allonge…

Et l’autre truc que j’ai remarqué avec ces lunettes connectées, c’est qu’elles se déclenchent tout le temps pour tout et n’importe quoi. Comme ça écoute en permanence pour répondre aux commandes vocales, impossible d’avoir une conversation normale sans que le machin réagisse à un mot qui ressemble vaguement à “Hey Meta”. C’est encore pire que Siri ou Alexa qui font déjà des déclenchements intempestifs. Perso, c’est pour ça que je ne veux pas de ce genre de lunettes, même si je reconnais que c’est pratique pour photographier ou filmer des choses (dans le cadre de mon boulot hein…)

Et les inquiétudes sont d’autant plus justifiées qu’une étude de 2024 a montré qu’en combinant des Ray-Ban Meta hackées avec de la reconnaissance faciale en temps réel, on pouvait identifier des inconnus dans la rue. Encore plus récemment, l’Université de San Francisco a dû alerter ses étudiants après qu’une personne mystérieuse ait utilisé ces lunettes pour filmer des femmes sur le campus et partager les vidéos en ligne. Sympa l’ambiance de parano.

Bref, si vous êtes inquiet par ça (ou juste soucieux de votre vie privée), le projet Ban-Rays est sur GitHub avec tout le code en C++, Python et un peu de C. C’est encore expérimental mais les deux approches sont prometteuses et si vous voulez contribuer, y’a plein de trucs à améliorer comme les patterns de balayage IR, la fusion des données multi-longueurs d’onde, l’interrogation active BLE…

Source

❌