π
<-
Chat plein-écran
[^]

Pourquoi l'anti-downgrade des TI-83 Premium CE est néfaste

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Pourquoi l'anti-downgrade des TI-83 Premium CE est néfaste

Unread postby critor » 02 Apr 2017, 16:21

Dans un article précédent, nous découvrions que pour la toute première fois dans l'histoire de la famille des calculatrices
TI-z80
, les
TI-83 Premium CE
munies du Boot Code 5.1.5.0014 étaient dotées d'une protection anti-downgrade.

Le fonctionnement de cette protection est très similaire à celui de celle des
TI-Nspire
, à la seule différence qu'il ne tient pas compte du numéro de version complet mais juste des 3 premiers chiffres :
  • Pour toute tentative d'installation d'un nouvel OS, les 3 premiers chiffres de la version sont vérifiés en début de transfert, lors de l'envoi du certificat.
    Si ils sont inférieurs à la version minimale autorisée pour la calculatrice en question, l'installation est refusée.
  • Si l'installation est acceptée, tous les OS depuis la version 5.1.5 incluent dans leur certificat une deuxième information de version, la version minimale autorisée suite à l'installation.
    Si cette version est supérieure à celle de la calculatrice, elle est alors enregistrée dans la mémoire Flash permanente, dans une zone qu'aucun menu officiel ne permet de réinitialiser.

Cette protection ne semble pas fonctionnelle sur les toutes premières
TI-83 Premium CE
commercialisées, munies d'un
Boot Code 5.0.0.89
.
C'est la raison pour laquelle elle na été découverte que si tardivement.

Pour les machines affectées, voici le détail à ce jour :
Version OS
installé
Nouvelle
version minimale
autorisée
5.1.55.1.5
5.2.05.1.5
5.2.15.1.5
5.2.25.1.5

À ce jour, on pourrait donc nous objecter que
Texas Instruments
n'a pas exagéré, évitant pour le moment de bloquer systématiquement tout retour à un OS antérieur comme sur
TI-Nspire
.
Si tu disposes d'une
TI-83 Premium CE
, peu importe que tu lui installes un OS 5.1.5 à 5.2.2, tu pourras quand même revenir en 5.1.5.



Nous admettrons même que cette protection anti-downgrade est une conséquence perverse logique/légitime de l'adoption du mode examen en France.
Vu que plusieurs des dernières mises à jour d'OS modifient le comportement du mode examen, il serait très grave de permettre à un candidat de revenir à un ancien mode examen qui justement posait problème.



Mais ça, c'était la théorie.
En pratique sur sur
TI-Nspire
, la dernière version n'est pas toujours le meilleur choix selon les besoins et le modèle.
La protection anti-downgrade systématique empêchant tout retour en arrière immédiatement après une mise à jour a nombre de fois été très nuisible aux utilisateurs.
Il y a les cas où la nouvelle version apportait des bugs, de calculs ou autres...
Et même des cas où la nouvelle version ne démarrait pas correctement dans certaines situations, ce qui bloquait donc définitivement la machine :
  • systèmes 2.1+ sur les
    TI-Nspire
    munies d'un Boot2 1.1
  • systèmes 3.6+ sur les prototypes
    TI-Nspire
    DVT
  • ...



Est-ce que ce sera mieux sur
TI-83 Premium CE
?
Visiblement non... À peine
Texas Instruments
a-t-il mis en place cette protection, que nous avons déjà des motifs de dénoncer cet abus.

Normalement, ta calculatrice devrait rester parfaitement fiable tant que tu t'en tiens à l'utilisation d'applications officielles et de programmes TI-Basic.
À partir du moment où tu commences à utiliser des applications non officielles
(ce qui n'existe pas à ce jour pour
TI-83 Premium CE
)
ou des programmes assembleur, il est "normal" de pouvoir rencontrer des plantages.

Et bien non, cette règle n'est pas respectée. :#non#:
Depuis la version d'OS 5.1.0, la
TI-83 Premium CE
dispose d'un bug très grave (déjà reporté à TI) faisant planter la machine et détruire tout le contenu de la mémoire de travail (RAM) en seulement 3 lignes de
TI-Basic
! :o
Il suffit de faire appel à une liste complexe vide, ce qui sur les versions 5.0.0 antérieures déclenchait un simple erreur de dimension. :mj:

Une fois la ligne déclencheuse atteinte, la calculatrice se bloque avec un écran zébré :
7368
Code: Select all
EffÉcran
Disp "Setting list type to cplx:
{→L₁
Disp L₁
Output(2,1,"L₁=
Disp "List type is now cplx-list
0→dim(L₁
Disp dim(L₁
Output(4,1,"Emptying list: dim(L₁)=
Disp "Asking for whole content
Disp "should trigger invalid dim
Disp "error like with real-lists
Disp "With v5.1+ it is crashing:
Disp "[ON]=abort [ENTER]=crash…
Pause
Disp "L₁=",L₁

Et voilà, maintenant c'est le
reset
avec la perte totale de données, alors que nous n'avons utilisé que des instructions officielles documentées. :mj:

Bien évidemment, il n'y a aucun intérêt à vouloir utiliser une liste vide dans un programme.
Mais dans un gros programme utilisant des listes complexes, il n'est pas impossible qu'un bug puisse conduire à ce cas.
Et même si le programme travaille juste sur des listes réelles, elles pourront très bien être complexes si elles ne sont pas correctement réinitialisées en début de programme...

Bref, si tu as réussi à obtenir des plantages sans aller chercher de programmes assembleur, c'est hélas normal depuis la versions 5.1.0. :(
La solution serait de revenir à une version 5.0.0, mais si ta calculatrice est venue avec un Boot Code 5.1.5 cela t'est interdit - bienvenue chez
TI
... :#roll#:
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32925
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby Hayleia » 02 Apr 2017, 16:24

Ce boot code est donc spécifique à la calculatrice ? Il n'est pas mis à jour lors d'une mise à jour de l'OS ?
edit

"Si cette version est supérieure à celle de la calculatrice, elle est alors enregistrée dans la mémoire Flash permanente, dans une zone qu'aucun menu officiel ne permet de réinitialiser."

Image
ImageImageImage
Pokemon Topaze
(Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaDonat.
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 10.7%
 
Posts: 2466
Images: 1
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
Class: Templar

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby critor » 02 Apr 2017, 16:43

Le Boot Code n'est pas mis à jour non.
D'une part les fichiers d'OS ne le contiennent pas, et d'autre part il est programmé au début de la mémoire Flash, sur des secteurs protégés contre la réécriture.

Le numéro de version minimale autorisée lui, est inscrit en Flash dans la zone des TI-Certificats.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32925
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby parrotgeek1 » 03 Apr 2017, 16:25

I wonder if you could make a parser hook which detects empty complex lists before the bug happens and calls the ERR: screen itself. I know how to do that on z80 but not ez80.
My Projects:
nLoaderCAS Patcher for ControlXnLaunchy CXM fork (3.9 CAS on B&W) - News Article
Prototypes:
Upgrade EVT Nspire CAS+Fix keyboard on prototype TI-Nspire CAS Touchpad
- Highlights: Nspire CX Non-CAS OS 3.3, CX & CX CAS OS 4.4 & 4.5 special reformatting installers (both found by me on TI's site)
Discoveries:
Boot1.5 vuln (used in nLoader) • Nspire dev boardsPink CX
Je peux comprendre le français mais je ne peux pas le parler bien.
User avatar
parrotgeek1Prog.
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 65.9%
 
Posts: 736
Joined: 29 Mar 2016, 01:22
Location: USA
Gender: Male
Calculator(s):
Class: university student
GitHub: parrotgeek1

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby PT_ » 03 Apr 2017, 19:26

Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"
Age of CEmpires I - In progress!
40%
User avatar
PT_Prog.
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 258
Joined: 09 Feb 2016, 23:06
Gender: Male
Calculator(s):

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby parrotgeek1 » 03 Apr 2017, 19:39

PT_ wrote:Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"

The problem is no one has publicly posted how to use a modified OS
My Projects:
nLoaderCAS Patcher for ControlXnLaunchy CXM fork (3.9 CAS on B&W) - News Article
Prototypes:
Upgrade EVT Nspire CAS+Fix keyboard on prototype TI-Nspire CAS Touchpad
- Highlights: Nspire CX Non-CAS OS 3.3, CX & CX CAS OS 4.4 & 4.5 special reformatting installers (both found by me on TI's site)
Discoveries:
Boot1.5 vuln (used in nLoader) • Nspire dev boardsPink CX
Je peux comprendre le français mais je ne peux pas le parler bien.
User avatar
parrotgeek1Prog.
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 65.9%
 
Posts: 736
Joined: 29 Mar 2016, 01:22
Location: USA
Gender: Male
Calculator(s):
Class: university student
GitHub: parrotgeek1

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby critor » 03 Apr 2017, 20:12

PT_ wrote:Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"

Great, PT_.
I did report that bug last september, it was still unfixed in OS 5.2.2, and you just fixed it in less than a day ! :bj:

Unfortunately, there is no OS 5.2.2 for the TI-83 Premium CE - we're still with OS 5.2.1.

parrotgeek1 wrote:
PT_ wrote:Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"

The problem is no one has publicly posted how to use a modified OS


Using it is not a problem, the signature is only checked at installation.

So we would just need an on-calc patching program. ;)
Can this be done, @PT_ ?

We just then won't be able to transfer the patched OS directly from the calculator to another one, since it won't validate.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32925
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby PT_ » 03 Apr 2017, 23:08

Well, it's definitely doable to modify the OS, and if you REALLY want to, I'm MAYBE willing to write a program that swap these things what I said. My only problems are that I have not many free time, and I still shudder when thinking about modifying an OS, even though people say it's legal ;)
Age of CEmpires I - In progress!
40%
User avatar
PT_Prog.
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 258
Joined: 09 Feb 2016, 23:06
Gender: Male
Calculator(s):

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby critor » 03 Apr 2017, 23:50

Patching is legal, indeed.
Sharing patched images isn't.

That's the difference. ;)
And that's why I was asking about a patching program.

Even if you don't have many time, you might still be able to complete the patcher before TI fixes the bug. :P
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32925
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby PT_ » 04 Apr 2017, 13:06

Hehe, I've patched the OS and fixed it! :P

Image

(Hope I didn't break anything else)
Age of CEmpires I - In progress!
40%
User avatar
PT_Prog.
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 258
Joined: 09 Feb 2016, 23:06
Gender: Male
Calculator(s):

Next

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: Majestic-12 [Bot] and 3 guests

-
Search
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
724 utilisateurs:
>712 invités
>7 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)