Linux Arcade Cab livre trop facilement ses secrets

Parfois, les systèmes embarqués d’ingénierie inverse peuvent être un vrai vieux problème, vous devez recourir à toutes sortes d’astuces telles que les problèmes de puissance afin de percer un petit trou dans l’armure, vous donnant un moyen d’entrer. Et, parfois, la porte est juste plaine grande ouverte. Cette exploration détaillée d’une machine d’arcade rétro prête à l’emploi se situe définitivement dans ce deuxième camp, pour une raison inconnue. [Matthew Alt] de VoidStar Security, a examiné en détail le fonctionnement de cette unité, qui se lit comme une excellente introduction à la façon dont Linux embarqué est construit sur ces systèmes minimaux.

Ce port série de débogage pourrait-il être plus évident?

Le matériel est l’armoire bartop habituelle, avec deux commandes et un écran LCD, avec juste assez à l’intérieur d’un boîtier métallique pour piloter le spectacle. À l’intérieur de celui-ci, le circuit imprimé principal contient le processeur d’application minimal attendu basé sur ARM avec son circuit de support. Le processeur est le Rockchip RK3128, doté d’un ARM Neon quad-core et d’un GPU Mali400, mais le principal argument de vente est l’excellent support Linux. Vous verrez probablement cette puce ou ses proches alimenter des boîtiers de télévision Android bon marché, et c’est le cœur de cette belle plate-forme « mini PC » de Firefly. Peut-être quelque chose à considérer vu que les Raspberry Pis sont actuellement si difficiles à trouver ?

Quoi qu’il en soit, on s’éloigne un peu, [Matthew] le décompose pour nous de manière très méthodique, d’abord en identifiant les principaux CI et en téléchargeant les fiches techniques appropriées. Ensuite, il passe aux connecteurs, localisant un micro-port USB interne non orienté vers l’utilisateur, ce qui va certainement être intéressant. Enfin, l’en-tête à 3 broches non peuplé plutôt évident est clairement identifié comme un port série. Cela a été capturé à l’aide d’un clone Saleae, pour vérifier qu’il s’agissait bien d’une interface UART et mesurer le débit en bauds. Après cela, il l’a connecté à un Raspberry Pi UART et en attachant l’utilitaire d’écran standard au périphérique série, un journal de démarrage et une invite racine ! Cette chose est vraiment la porte de la grange grande ouverte.

Est-ce une invite racine que vous avez pour moi ? Oh pourquoi oui !

En branchant simplement une clé USB, toute la mémoire flash a été copiée, partitions et tout, donnant une sauvegarde complète au cas où un piratage ultérieur gâcherait les choses. Étant basé sur U-Boot, c’était une question triviale de simplement taper ‘Ctrl-C’ au démarrage, et il a été déposé directement dans la ligne de commande U-Boot, et toute la configuration pouvait être facilement lue. En utilisant U-Boot pour vider de bas niveau le flash SPI sur un périphérique USB externe, via une copie RAM, il a prouvé qu’il pouvait faire l’inverse et réécrire la même image sur le flash sans rien casser, il était donc désormais possible d’inverser concevoir le logiciel, apporter des modifications et le réécrire. L’automatisation du processus a été effectuée à l’aide de Depthcharge sur le Raspberry Pi, ce qui était également intéressant à lire. Nous garderons un œil sur le blog pour savoir ce qu’il en fera ensuite !

Comme nous l’avons vu précédemment, Linux embarqué est vraiment partout, et une fois que vous avez un accès matériel et un support logiciel, le piratage de nouvelles astuces n’est pas si difficile non plus.