
Une fois les connexions JTAG correctement soudées, il devenait alors possible de reprogrammer totalement l'intégralité de la mémoire NAND, y compris la zone d'amorçage contenant le Boot Code, et ce même si la calculatrice n'était plus en état de démarrer correctement !

Les applications directes de la technique étaient de réparer des calculatrices inutilisables (mémoire Flash-NAND corrompue ou effacée), ou d'injecter des failles qui pouvaient être exploitées par la suite (Boot Code modifié par exemple).
Là où la HP Prime sortie à la rentrée 2013 était encore relativement jeune, sur les TI-Nspire sorties dès la rentrée 2007 pour les modèles monochromes, personne n'avait jamais réussi un tel exploit malgré des années ayant vu défiler des gens très compétents.

Pourtant, dans le contexte des recherches visibles à l'époque sur le site Yaronet et ayant conduit à la sortie du jailbreak Ndless 1.0 pour la rentrée 2010, l'on suspectait déjà la présence de connexions JTAG.
Cette carte datée de décembre 2005 fut utilisée par les ingénieurs Texas Instruments pendant la phase initiale de développement, ayant l'avantage d'exposer à échelle humaine des moyens de contrôle directs des différents composants, y compris ceux renfermés dans la puce ASIC.
Et cette carte comportait justement un bloc dénommé JTAG avec deux connecteurs usuels 14 et 20 broches...



Un connecteur fort bizarrement présent sur les prototypes prêtés par Texas Instruments à divers partenaires et pas toujours récupérés, ce qui fait que certains d'entre eux se retrouvent régulièrement revendus en ligne, notamment en Chine. Un connecteur que nous soupçonnions donc très fortement d'implémenter entre autres le JTAG.





En effet, une fois la calculatrice connectée le logiciel OpenOCD détecte deux éléments exploitables :
- Code: Select all
Open On-Chip Debugger 0.9.0 (2015-08-15-12:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 1500 kHz
Warn : Using DEPRECATED interface driver 'ft2232'
Info : Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/...
Info : device: 6 "2232H"
Info : deviceID: 67348176
Info : SerialNumber: TIWBH0NSA
Info : Description: Texas Instruments Inc.XDS100 Ver 2.0 A
Info : max TCK change to: 30000 kHz
Info : clock speed 1500 kHz
Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1)
Info : JTAG tap: auto1.tap tap/device found: 0x07926f0f (mfg: 0x787, part: 0x7926, ver: 0x0)
Les deux éléments ont pour identifiant de fabricant 0x787, ce qui est le code générique pour de la technologie ARM, la même utilisée par le processeur des TI-Nspire, tout colle !

A titre d'information pour ceux souhaitant tenter de reproduire l'exploit, le fichier de configuration OpenOCD utilisé à ce jour est le suivant :
- Code: Select all
#
# Texas Instruments XDS100v2
#
# http://processors.wiki.ti.com/index.php/XDS100#XDS100v2_Features
#
interface ft2232
ft2232_device_desc "Texas Instruments Inc.XDS100 Ver 2.0"
ft2232_layout xds100v2
adapter_khz 1500
Ce sont de nouveaux horizons qui s'ouvrent aujourd'hui sur TI-Nspire, avec là encore la possibilité de reprogrammer la mémoire NAND des calculatrices hors service, et peut-être de reconfigurer divers autres petites choses intéressantes...

Un grand merci aux nombreuses personnes bien plus compétentes que nous, qui ont bien voulu nous assister et aider sur plusieurs années dans cette tâche inédite pour nous.
