Page 1 of 2

Programme de clignotement diode examen : légende urbaine ?

Unread postPosted: 01 Feb 2017, 16:34
by critor
Si l'on lit les commentaires sur les différents médias sociaux au sujet du mode examen 2018+, il serait ultra facile de réaliser un programme simulant le clignotement de la diode examen. :o

Lorsque l'on a une véritable connaissance des exigences des textes réglementant le mode examen et de son fonctionnement, on ne peut que se rendre compte qu'il est impossible de réaliser un tel programme de façon fiable et en laissant la calculatrice utilisable. En effet :
  • Un programme prend la main sur le système. Pendant qu'un programme tourne sur nos machines, il est impossible de faire appel à des fonctionnalités extérieures au programme.
    Il est donc en théorie possible de simuler le mode examen pendant les premières minutes et tromper le surveillant, mais en pratique il faudra bien à un moment se servir des fonctionnalités de sa calculatrice, c'est-à-dire sortir du programme ce qui éteindra ou figera la diode, et déclenchera l'intervention immédiate des surveillants.
    Un tel programme serait donc totalement inutile, même si il existe déjà de façon non publique pour calculatrices TI-Nspire.
  • Mais supposons donc qu'il soit possible de faire tourner un programme en arrière plan, sans blocage des fonctionnalités de la calculatrice.
    Problème : le signal se doit d'être régulier, là où la vitesse d'exécution d'un programme variera selon ce que la machine est en train de faire.
  • Supposons encore de façon optimiste qu'il soit possible de donner au code de notre programme une priorité suffisamment haute pour s'affranchir de ce contexte. Il reste un dernier problème essentiel auquel bizarrement on oublie de penser.
    Une fois le mode examen activé, le signal de la diode se doit d'être régulier, et ce en toute situation - c'est-à-dire que la diode continue à clignoter même lorsque la calculatrice est éteinte !
    Or, un programme normal cesse toute exécution à l'extinction de la calculatrice. :#non#:
Bref, un simple programme simulant le clignotement de la diode examen est tout bonnement impossible.
Du code faisant clignoter la diode est en théorie réalisable, mais pour s'affranchir simultanément des 3 contraintes précédentes, il devra être injecté très profondément au coeur même du système d'exploitation (ce qui ne saurait plus être qualifié de simple 'programme'), nécessitant donc une modification du système ce qui implique une connaissance assez poussée de son architecture.

De ce point de vue là, le mode examen à diode a été fort bien pensé. :bj:

3054Parmi nos modèles conformes, lesquels seraient vulnérables face à de telles modifications ?
  • Théoriquement, on peut programmer sans contrainte un système modifié sur Casio Graph 25+E, Graph 35+E, Graph 75+E, fx-CP400+E et HP Prime.
    Mais en pratique, les outils et/ou instructions techniques nécessaires ne sont disponibles publiquement que pour Casio Graph 35+E, Graph 75+E et HP Prime.
  • Sur les TI-83 Premium CE et TI-82 Advanced, le système est officiellement protégé contre toute altération par une signature électronique 2048-bits infalsifiable vérifiée à l'installation.
    En pratique, il est possible d'altérer le système une fois installé, mais les outils et/ou instructions techniques nécessaires n'ont jamais été publiés.
  • Sur les TI-Nspire nous retrouvons la même vérification par signature électronique, 1024-bits pour les modèles monochromes et 2048-bits pour les TI-Nspire CX.
    Grosse différence ici, la signature est vérifiée non seulement à l'installation du système, mais également à chaque redémarrage de la calculatrice.
    Faire tourner de façon pérenne un système modifié nécessite donc un gestionnaire de démarrage (Nlaunchy ou nBoot+ControlX), et aucun d'entre eux n'est compatible avec les TI-Nspire CX de génération CR4 (révision matérielle W+) produites depuis octobre 2015, et qui seront donc majoritaires aux examens 2018+.
    Rajoutons également que le système d'exploitation est enregistré sur la calculatrice sous forme cryptée, ce qui complexifie toute tentative de modification (il faudra à la fois être capable de décrypter et de recrypter, et ce sont deux problèmes complexes totalement différents).



Dans d'autres commentaires de sources similaires, certains se vantent même en disant qu'ils ont Ndless sur leur TI-Nspire qui leur permet de simuler le mode examen, ce qui n'est franchement pas malin du tout car d'une part c'est à ce jour faux, et d'autre part cela incite les institutionnels non techniquement compétents lisant cela à exiger de Texas Instruments le blocage alors injuste de Ndless. :mj:

Le contrôle de la diode examen par des programmes Ndless était effectivement possible par simple écriture sur le port associé jusqu'à la version d'OS 1.4.
Depuis, ce port fait l'objet d'un verrouillage, même si cela a donc pu être contourné par un programme.
Ce programme rajoute le déverrouillage de la diode en écrivant à 3 adresses différentes au lieu d'une seule :
Mais en l'état, c'est donc un programme totalement inutile : le lancement prend le contrôle de la diode, mais comme avec tout programme Ndless ce dernier prend la main sur le système et les fonctionnalités de la calculatrice deviennent alors inutilisables jusqu'à la sortie du programme.

7756Nous avons refait un tel programme de démo à partir de ces adresses documentées publiquement. Il permet d'allumer indépendamment les deux couleurs de base de la diode (vert et rouge), ce qui par synthèse additive donne la 3ème couleur orange.
Il ne sera bien évidemment jamais publié ni partagé - mais nous ne pouvons pas décemment parler de la fiabilité du mode examen sans tester nous-mêmes si il y a moyen de contourner. ;)

Crois-tu donc que ce soit plus facile de contrôler la diode examen parce que l'on a une TI-Nspire avec Ndless ?
Oh que non, car on se rend compte à l'utilisation du programme qu'il y a une autre énorme difficulté non encore évoquée, une sécurité malicieusement cachée par Texas Instruments. A la sortie du programme le système d'exploitation reprend la main, et d'une façon ou d'une autre arrive à se rendre compte qu'une ou plusieurs écritures ont été effectuées sur le port de la diode.
Le motif de la diode ayant donc peut-être été falsifié, le système redémarre immédiatement la calculatrice, annulant donc au passage toutes les altérations que tu as éventuellement réalisées (dont l'installation de Ndless si tu n'as pas de gestionnaire de démarrage).

Ci-dessous, une démo te montrant bien que le redémarrage ne se produit pas si on ne change rien, mais se produit dans tous les autres cas, y compris si tu prends soin de remettre la diode dans son état d'origine : :o


Contrairement à la rumeur Ndless ne change donc rien à la chose, la prise de contrôle de la diode semblant même encore plus difficile sur TI-Nspire que sur les autres modèles.



De nombreux contournements du mode examen plus ou moins facilement réalisables selon les modèles existent et d'autres encore plus extraordinaires sont à venir, mais imaginer pouvoir simuler le clignotement de la diode examen juste en lançant un programme est vraiment la pire des idées. :#non#:




Niveau surveillants, dans l'éventualité où du code contrôlant la diode soit un jour fonctionnel sur certains modèles, ce qui à date n'est vraiment pas gagné d'avance, la meilleure vérification est de venir à un moment ou à un autre éteindre la calculatrice de chaque candidat.
Si la calculatrice refuse de s'éteindre ou si le clignotement de la diode s'arrête ou change de rythme (il est donc irrégulier contrairement aux exigences du cahier des charges officiel), c'est qu'il est simulé par du code non officiel et qu'il y a donc fraude. :#non#:

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 16:54
by Ti64CLi++
Mais donc la calculatrice la moins protégé contre le clignotement de la LED serait la HP Prime non? Puisque un OS modifié a déjà été créer, il serait théoriquement possible d'en faire un avec toutes les fonctionnalités de l'OS d'HP, mais avec le clignotement de la LED en plus?

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 16:57
by critor
Oui, un OS alternatif est capable de faire clignoter la diode sur HP Prime, il en sera question dans un autre article, tout comme du Linux sur TI-Nspire.

Mais niveau fonctionnalités, l'OS HP Prime alternatif t'offre juste une calculatrice basique 4 opérations, donc aucun candidat ne choisira ça à ce jour pour frauder. :P
Il aurait fallu que cet OS évolue vers un portage de Linux ou de BSD, mais plus rien ne semble bouger depuis des mois. :'(

Donc comme au final on peut faire comme si cet OS alternatif n'existait pas, je dirais égalité à la dernière place entre la HP Prime et les Graph 35+E/75+E.

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 17:12
by Ti64CLi++
Et avec nDroid, ça doit être possible de créer une application pour faire clignoter la led non?

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 17:37
by Epharius
Intéressant, je me demandais où on en était pour le clignotement de la LED justement.

Sinon pour les (e)Z80 au moins, il serait possible d'utiliser les interruptions pour avoir quelque chose de précis (comme ce que doit faire l'OS en mode examen) mais éteindre la calculatrice doit arrêter les interruptions de toute façon :p
Dans tous les cas personnellement je n'avais pas réussi à faire clignoter ma LED sur 83PCE, sans avoir non plus poussé mes recherches. Mais certains ont déjà du y parvenir à mon avis.

Bref, à voir comment évoluent les choses !

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 18:05
by Wistaro
Bel article :)

Si la partie logicielle pose problème, pourquoi ne pas passer du côté hardware?

Faire un petit système de clignotement à l'aide de 2/3 composants ne poserait aucun problème. Le seul hic, c'est la discrétion :p

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 19:16
by jean-baptiste boric
critor wrote:Mais niveau fonctionnalités, l'OS HP Prime alternatif t'offre juste une calculatrice basique 4 opérations, donc aucun candidat ne choisira ça à ce jour pour frauder. :P
Il aurait fallu que cet OS évolue vers un portage de Linux ou de BSD, mais plus rien ne semble bouger depuis des mois. :'(


Pour continuer il me faut impérativement un environnement de développement plus developer-friendly, c'est à dire un QEMU récent avec un support minimal du matériel de la HP Prime. Un utilitaire pour flasher la calculette sous Linux ne serait pas de refus non plus.

Mais à chaque fois que je regarde les sources de QEMU je finis avec une migraine... :?

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 19:19
by critor
Ah ben déjà heureux de voir que tu es toujours parmi nous et que tu vas bien. :)
Et bonne année ! ;)

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 20:38
by Bx4
Je lisais ASM Guru (tres bon tuto français) qui donnait ce code :
Code: Select all
OFF:         
DI   ; disable interrupts         
LD A,001H         OUT (003H),A  ; turn off screen         
LD A,000H         OUT (004H),A       
EX AF,AF'       
EXX         
EI   ; enable interrupts       
RET

Ce code sert a éteindre la calculette, mais il est dit que "le programme reste en mémoire. La commande 'ret' s'exécute quand vous rallumez votre TI". Est ce que c'est possible de faire clignoter la led avec un programme assembleur ?
Si c'est le cas, on a résolu le troisième problème :)

Re: Programme de clignotement diode examen : légende urbaine

Unread postPosted: 01 Feb 2017, 21:22
by critor
Aucune idée, à tester.

Mais c'est donc du code z80, ce qui ne peut concerner que les TI-82 Advanced et TI-83 Premium CE.

Sur TI-82 Advanced nous n'avons actuellement aucun moyen public d'y injecter du code machine tiers.

Sur TI-83 Premium CE cela reste possible, mais en pratique les écritures directes sur des ports (OUT) sont toutes interceptées, déclenchant un redémarrage immédiat de la machine.


Qu'on les apprécie ou pas, les TI-82 Advanced et TI-83 Premium CE semblent être les modèles les mieux sécurisés niveau mode examen.