Deux versions d'Epsilon existent pour cette calculatrice, toutes deux portant la version 16.3.5, mais ayant des id de commit git différents. Il est à noter que c'est la première version officielle présente sur le CDN de Numworks qui a une version micro différente de 0.
Ces deux versions du firmware sont donc en réalité prévues pour deux modèles différents, l'un nommé
N0120
(id commit git 5176779), l'autre N0120_PORTUGAL_PROTOTYPE_20210930
(id commit git 2181d13). Ceci peut indiquer que deux modèles existeront, un pour le Portugal et un pour le reste du monde.Déjà, juste en regardant le fichier DFU, on se rend compte que la flash interne est plus grosse que la N0110 :
- Code: Select all
Element 0 : Address: 0x8000000 Size: 0xffc38 <internal>
Element 1 : Address: 0x903f0000 Size: 0x10000 <external>
Element 2 : Address: 0x907f0000 Size: 0x10000 <external>
Element 3 : Address: 0x90000000 Size: 0xfa6e8 <external>
Element 4 : Address: 0x90400000 Size: 0xfa6e8 <external>
On a donc une configuration avec 1M de flash interne et 8M de flash externe. D'après le fichier javascript cité avant, la sRAM aurait une taille de 320K.
Après décompilation du firmware (merci Ghidra toujours), j'ai essayé d'appliquer la map des registres du STM32F730 (le proco de la N0110), mais ça ne faisait aucun sens. J'ai continué à chercher, et j'ai trouvé des écritures / lectures autours de 0x52000000. Après une recherche google utilisant ces caractéristiques, on peut assez sereinement dire que le proco retenu est le STM32H743.
On se rend aussi compte d'autre chose : les deux firmware target le même hardware, donc on peut penser à un seul modèle pour la version WW et PT, mais les clés publiques ED25519 ne sont pas les mêmes. Le firmware pour
N0120
a la même clé qu'Epsilon >= 16.3.0, alors que le firmware pour N0120_PORTUGAL_PROTOTYPE_20210930
a une clé totalement différente.Deux théories possible :
- Le prototype étant un prototype, la clé est différente (comme Epsilon 16.0.0 à 16.2.0 qui ont des clés différentes de celles d'Epsilon >= 16.3.0)
- La version PT ne pourra pas accepter de firmware venant de la version worldwide.
Je vais continuer à violemment décompiler ces deux firmwares dans l'espoir de trouver plus d'infos. Je peux déjà dire que les deux firmware mettent la calculatrice en RDP1, et donc qu'il est possible de la déverrouiller avec un ST-Link ou un Raspbery PI.