Page 1 sur 2

Protection anti-downgrade TI-83 Premium CE Boot 5.1.5

Message non luPosté: 31 Mar 2017, 18:42
de critor
Sur la famille TI-Nspire, la dernière version système n'est pas toujours le meilleur choix selon les besoins de chacun.
Toutefois, downgrader sa TI-Nspire est une pratique farouchement combattue par le constructeur via diverses protections.

Les dernières TI-82 Advanced, TI-83 Premium CE et TI-84 Plus CE appartiennent elles à la famille des TI-z80, une famille entre autres plébicitée par ses utilisateurs et développeurs pour ses grandes libertés, et notamment pour la liberté d'installer n'importe quelle version et donc de downgrader. :bj:

81818180Hélas, il semble qu'il faudra désormais parler de cette liberté au passé. Les dernières TI-83 Premium CE (et probablement aussi TI-84 Plus CE) préchargées avec le Boot Code 5.1.5.0014 refusent l'installation de tout OS antérieur à 5.1.5. :'(

Que le nouvel OS soit envoyé depuis une autre calculatrice ou depuis TI-Connect CE ne change rien au problème.

8182Même mettre la calculatrice réceptrice dans le mode de réception d'OS du Boot Code ne permet pas de contourner l'interdiction.



Edit : La protection a été comprise, et est très similaire à celle des TI-Nspire.
viewtopic.php?t=19793&p=214887#p214888

Chaque nouvel OS installé depuis la version 5.1.5, contient une version minimale d'OS installable (à ce jour 5.1.5) qui sera programmée en mémoire Flash, dans une zone qu'aucun menu officiel ne permet de réinitialiser.
Toute tentative ultérieure d'installation d'une version d'OS inférieure à cette valeur sera donc refusée...

...sauf sur les premières TI-83 Premium CE munies d'une Boot Code 5.0.0 qui semble se moquer complètement de cette valeur. ;)



8179Pour savoir si ta machine est impactée par cette limitation, il te suffit de vérifier la version du Boot Code avec :f22: :f31: :f81: .
Et il n'est hélas pas possible de reprogrammer le Boot Code sur les modèles commercialisés. :(



Finalement, tout aussi inacceptable qu'elle puisse être, cette nouvelle protection ne nous surprend pas.
C'est un des effets pervers aisément prévisibles de l'adoption du mode examen en France. Plusieurs des dernières mises à jour ont en effet concerné en partie le mode examen, et dans ce contexte il serait potentiellement très grave que les candidats puissent revenir en arrière et donc disposer du comportement non corrigé du mode examen (même si c'est en pratique le cas sur la plupart des autres modèles qui nous semblent bien moins sécurisés).

Espérons que nous ne découvrirons pas, contrairement à la famille TI-Nspire, que cette protection nuit aux utilisateurs, avec diverses situations où d'anciennes versions fonctionneraient mieux que les seules dernières versions autorisées... :#roll#:

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 20:50
de critor
Je crois que j'ai trouvé.
Protection très similaire à celle de la TI-Nspire si je devine bien.

Image

Voici les champs utilisés par le TI-Certificate en début d'OS :








version5.0.0-5.1.15.1.5+
champs8010 (2 octets) : ID clé signature (13)8010 (2 octets) : ID clé signature (13)
8020 (1 octet) : version majeure (5)8020 (1 octet) : version majeure (5)
8030 (2 octets) : numéro de build8030 (2 octets) : numéro de build
80A0 (1 octet) : version matériel (7)80A0 (1 octet) : version matériel (7)
80C0 (2 octets) : version min compatible (1.0)80C0 (2 octets) : version min compatible (1.0)
80D0 (6 octets)
0000 (DF octets) : filler0000 (D7 octets) : filler
8070 : code OS8070 : code OS


A partir de la version 5.1.5, il y a un champ supplémentaire 80D0 de 6 octets avec les valeurs suivantes :
  • 5.1.5 : 05 01 05 05 01 05
  • 5.2.0 : 00 02 05 05 01 05
  • 5.2.1 : 01 02 05 05 01 05
  • 5.2.2 : 02 02 05 05 01 05
Comme sur TI-Nspire, ce champ contient en fait 2 versions successives, décrites ici chacune par 3 octets en écriture inverse :
  • la version qui sera vérifiée par la protection anti-downgrade
  • la nouvelle version minimale à enregistrer pour la protection anti-downgrade

Donc l'installation de tout OS 5.1.5 à 5.2.2 enregistre en mémoire Flash une version minimale d'OS installable de 5.1.5.
Et ce qui se passe, c'est juste que le Boot Code 5.0.0 des premiers modèles ignore complètement cette valeur.
Quant au Boot Code 5.1.5, quand on lui envoie un vieil OS 5.0.0-5.1.1 dépourvu de ce champ, il doit retenir une valeur par défaut inférieure à 5.1.5 pour la version vérifiée, ce qui déclenche le refus de l'OS.


Et bien évidemment, le champ TI-Certificate faisant partie de la zone protégée par la signature électronique, y modifier des valeurs n'est pas envisageable.
Je l'ai juste fait pour confirmer en rajoutant un champ 80D0 à un OS 5.1.1 : c'est bon le transfert démarre, ce qui veut dire que la protection anti-downgrade a échoué ! :bj:
Mais bien évidemment, l'OS est alors refusé en fin de transfert, à la vérification de la signature électronique.



Comme sur TI-Nspire, il devrait suffire d'un simple petit programme assembleur pour réinitialiser la version minimale d'OS installable en mémoire Flash.

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 21:00
de Epharius
Mmmh, ça ne m'étonne presque pas. Mais bon, c'est en effet un peu nécessaire face à la pression qu'ils ont sur le mode examen (même si tout ça se transforme en zèle à force).

Bon, perso j'ai le Boot Code 5.0.0 donc je pourrai toujours faire des bêtises sur ma calculatrice même si une mauvaise màj vient à être mise en ligne :p

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 21:06
de guinatore
A part contourner le mode examen, y'avait-t-il d'autres avantages à downgrader sa calculatrice?
Certaines fonctions mieux otpimisées?
Pure nostalgie des anciennes version?
Besoin de liberté? :p

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 21:14
de critor
Oh que oui il y a des raisons parfaitement légitimes de downgrader - ça allait être la prochaine news.

Depuis la version 5.1.0, soit depuis août 2015 (ça fait 1 an et demi...), il y a un bug très grave qui te détruit tout le contenu de la mémoire RAM, déclenchable en seulement 3 lignes de TI-Basic : :mj:
Code: Tout sélectionner
{i→L₁
0→dim(L₁
L₁

Si vous avez eu des pertes de mémoire sans avoir touché au moindre programme assembleur, et ben vous n'avez pas halluciné - voilà pourquoi... :#roll#:

Si tu es bloqué en version 5.1.5+ à cause de la protection anti-downgrade, et bien tes données sont en danger permanent - à chaque utilisation d'un programme TI-Basic - ce qui est totalement *anormal*.

Pour les autres, vous pouvez downgrader vers une version 5.0.0 dont le TI-Basic est plus fiable. :)

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 21:53
de guinatore
Donc en gros chaque nouvel OS est bien en apparence, mais contient de nouveaux bugs (ou du moins ne fixe pas les anciens) et ne nous permet pas de revenir en arrière..
Plutôt dangereux... Et surtout si des bugs comme cela existent...

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 22:03
de critor
En effet, pour rajouter des protections, visiblement il y a du monde.

Par contre, pour les bugs parfois graves présents depuis des mois/années... :#roll#:


Chacun en tirera sa conclusion.

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 22:27
de GalacticPirate
Euh, vous exagérez un peu, TI a corrigé des tonnes de bugs, même un certain nombre reportés par des membres de TI-Planet. En plus, vous oubliez toString( et les suites ? :p

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 22:31
de critor
toString( sert en grande partie pour le TI-Innovator, ce qui ne concerne pas grand monde en France à ce jour.
Je peux te citer des bugs de fonctionnalités mathématiques liés au moteur de calcul exact (perte de la valeur exacte) toujours pas corrigés depuis 2015.
Voir viewtopic.php?t=17309&p=189805#p189803 exemple 3.

Le moteur de calcul exact des Casio Graph 35+E/75+E s'en sort mieux...

Quant au bug très grave de destruction de mémoire en seulement 3 lignes de TI-Basic, il est signalé depuis septembre 2016, et toujours pas corrigé.


Peut-être qu'au lancement ils ont corrigé pas mal de bugs, mais plusieurs d'entre eux persistent toujours aujourd'hui, et le rythme semble avoir bien baissé depuis... Peut-être le TI-Innovator monopolise-t-il trop leurs ressources de développement...

Re: Découverte protection anti-downgrade TI-83 Premium CE

Message non luPosté: 31 Mar 2017, 23:24
de critor
Voilà, deviné où la valeur minOS est inscrite.

Dans la page de certificats à partir de 0x3B0000, dans un champ 0370 :
Image

Ici sur un dump de TI-83 Premium CE HW-E, nous avons comme champs :
  • 0420 (17 octets) : nom de modèle affiché au démarrage (TI-83 Premium CE)
  • 0370 (3 octets) : version minimale d'OS installable (5.1.5)
  • 0340 (1 octet) : ?
  • 0B00 (8 octets) : langue (ENGLISH)

Et si vous voulez mon avis, le mode examen n'est pas bien loin... ;)