1ère connexion JTAG fonctionnelle sur TI-Nspire CX
Posted: 07 Aug 2016, 21:04
En avril 2015, Lionel Debroux nous signalait la prise de contrôle totale des calculatrices HP Prime via la voie matérielle du JTAG sur le site Cemetech.
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.
La présence du JTAG est devenue de plus en plus une certitude, lorsque nous pûmes observer la carte de développement du TI-Phoenix 1, nom de code interne de la gamme TI-Nspire monochrome.
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...
Ces connecteurs étaient bien évidemment absents des cartes mères miniaturisées des TI-Nspire. Mais nous avons pu remarquer sur les modèles monochromes puis couleur, la présence interne de contacts pour un connecteur J04 manquant à 30 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.
Dès octobre 2013 nous récupérions donc une calculatrice TI-Nspire CX munie d'un tel connecteur, et arrivions même à l'identifier !
Désormais munis des bonnes références et connecteurs, près de deux ans et demi après, nous venons enfin de réaliser la toute première connexion JTAG fonctionnelle avec cette calculatrice, à l'aide d'un adaptateur USB/JTAG de chez Olimex, le TMS320-JTAG-USB XDS100 V2 !
En effet, une fois la calculatrice connectée le logiciel OpenOCD détecte deux éléments exploitables :
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 :
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.
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.
La présence du JTAG est devenue de plus en plus une certitude, lorsque nous pûmes observer la carte de développement du TI-Phoenix 1, nom de code interne de la gamme TI-Nspire monochrome.
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...
Ces connecteurs étaient bien évidemment absents des cartes mères miniaturisées des TI-Nspire. Mais nous avons pu remarquer sur les modèles monochromes puis couleur, la présence interne de contacts pour un connecteur J04 manquant à 30 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.
Dès octobre 2013 nous récupérions donc une calculatrice TI-Nspire CX munie d'un tel connecteur, et arrivions même à l'identifier !
Désormais munis des bonnes références et connecteurs, près de deux ans et demi après, nous venons enfin de réaliser la toute première connexion JTAG fonctionnelle avec cette calculatrice, à l'aide d'un adaptateur USB/JTAG de chez Olimex, le TMS320-JTAG-USB XDS100 V2 !
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.