Personne n’aime ouvrir une cible de piratage et trouver une goutte d’époxy noire à l’intérieur, mais tout espoir n’est pas perdu. Du moins pas si vous avez le dévouement et les compétences de [Jeroen Domburg] alias [Sprite_tm].
Tout a commencé quand [Big Clive] a commandé une fleur de méditation musicale chinoise chintzy et a trouvé une goutte noire. Mais de manière tentante, le gâchis en plastique brillant comprenait également une mémoire flash EEPROM de 2 Mo. La question est alors : peut-on remplacer le contenu par votre propre musique ? Spoiler : oui, vous pouvez ! [Sprite_tm] et une équipe de Buddha Chip Hackers répartis dans le monde entier s’est mise au travail. (Diapositives ici.)
[Jeroen] commencé avec binwalk
et obtient, eh bien, pas beaucoup. Les données qui [Big Clive] dumped avait une entropie suffisamment élevée pour qu’il ait l’air aléatoire ou crypté, à l’exception de quelques minuscules sections. En examinant les données, il y avait quelques structuré, cependant. [Jeroen] sentait le cryptage de merde. Maintenant, en principe, il existe des millions de mauvaises méthodes de cryptage pour chaque bonne. Mais en pratique, les cryptographes naïfs ont tendance à graviter autour d’une poignée de mauvais schémas.
Le mauvais modèle numéro un est XOR. Utilisé correctement, XORing peut être une force pour le bien, mais si vous XOR votre clé avec des zéros, naturellement, vous récupérez la clé comme texte chiffré. Et ces données contenaient beaucoup de zéros. Cela signifie qu’il y avait beaucoup de longues chaînes qui commençaient de la même manière, mais elles semblaient durer indéfiniment, comme si elles étaient pseudo-aléatoires. Le mauvais modèle de chiffrement numéro deux utilise un registre à décalage à rétroaction linéaire pour vos nombres pseudo-aléatoires, car l’espace des paramètres est suffisamment petit pour que [Sprite_tm] pourrait simplement le forcer brutalement. À la fin, il souligne leur troisième erreur – rendre le cryptage si amusant à pirater qu’il a gardé sa motivation !
Décryptées, les données EEPROM étaient un système de fichiers. Et le langage machine s’est avéré être pour un 8051, mais il y avait toujours le problème du code résident sur la ROM du microcontrôleur. Alors [Sprite_tm] acheté une de ces fleurs et a commencé à sonder autour de la tache noire elle-même. Il a écrit un programme de vidage qui produit le contenu de la ROM interne via SPI. Ghidra a fait un bon démontage, ce qui lui a permis de comprendre comment la mémoire était disposée et comment le flux fonctionnait. Il a également découvert une zone ROM « secrète » dans le flash de la puce, qu’il a obtenue en essayant des fonctions aléatoires et en recherchant des effets secondaires. Le premier coup s’est avéré être un memcpy. Sucré.
Pendant ce temps, Internet fonctionnait toujours sur cet appareil, et [Neil555] acheté une fleur aussi. Mais celui-ci avait une puce, plutôt qu’un blob, et l’identification de cette partie les a conduits à un SDK, et qui a une suite audio qui utilise un dérivé de l’encodage audio WMA. Et c’était suffisant pour que la musique soit chargée dans la fleur. (Cue un court rick-roll.) Victoire !
Eh bien, la victoire si tout ce que vous vouliez était de pirater votre musique sur la puce. Comme dernier coup de fouet final, [Sprite_tm] écrasé le schéma rétro-conçu de la fleur de Bouddha avec [Thomas Flummer]’s très joli badge DIY Remoticon, et a téléchargé notre propre musique de thème d’introduction dans l’appareil sur un badge. Points bonus? Il a ajouté des LED qui faisaient clignoter le LSFR responsable du « cryptage ». Brûlure malade !
Note de l’éditeur : il s’agit de la dernière des vidéos Remoticon 2 que nous avons. Merci à tous ceux qui ont donné des présentations, à tous ceux qui ont assisté et participé à la chaîne animée Discord, et à tous ceux qui entretiennent la flamme du piratage. Nous ne pourrions pas le faire sans vous, et nous attendons avec impatience un retour à Supercon « normal » très bientôt.