Découverte code secret 5 mode examen Casio Graph 25/35/75+E
Posted: 26 Jan 2017, 17:10
Dans un article précédent, nous étudions le mode examen des calculatrices Casio Graph 25+E, Graph 35+E et Graph 75+E.
Nous découvrions qu'il était contrôlé par l'octet d'offset 0x06 en mémoire RAM, octet qui prenait les valeurs suivantes :
Or, chaque redémarrage restaurant la mémoire RAM à partir de la sauvegarde en mémoire Flash, chacun de ces changements devenait alors permanent.
Nous nous interrogions par contre, sur comment réagirait la calculatrice si l'on écrivait d'autres valeurs dans l'octet de contrôle du mode examen.
Teamfx sur Planète Casio répond à notre question. Il y a analysé le code de l'OS à la recherche des différentes écritures dans l'octet du mode examen.
Ont été trouvés différents codes écrivant 0x00, d'autres écrivant 0x95, et surtout du code orphelin écrivant une valeur totalement différente, 0x05 !
Un code orphelin est un code qui est bien présent dans l'OS, mais qu'aucun autre code de l'OS ne référence ou appelle, et qui n'est donc jamais exécuté sans intervention d'un élément extérieur à l'OS (comme une application).
Et donc, quel est donc la raison d'être de ce code secret 0x05 ? Qu'est-ce qui se passe si on force l'écriture de 0x05 dans l'octet du mode examen ?
Rien de plus facile : il nous suffit de prendre une image de la mémoire Flash d'une calculatrice Graph 75+E, de modifier l'octet du mode examen en 0x05 dans les deux sauvegardes de la mémoire RAM qu'elle contient, et enfin de programmer cette image sur notre calculatrice à l'aide de fxRemote. Dès le redémarrage de la calculatrice, la mémoire RAM récupèrera alors 0x05 dans l'octet du mode examen.
Apparemment la calculatrice ainsi reprogrammée n'est pas en mode examen, permettant l'accès à la mémoire, aux applications, ainsi qu'aux fonctions de calcul vectoriel.
Mais la surprise, c'est que la calculatrice refuse alors de se mettre en mode examen comme illustré ci-contre !
En tentant d'activer le mode examen, nous obtenons en effet un avertissement comme quoi il est interdit de réactiver le mode examen dans les 10 minutes suivant sa désactivation.
Et effectivement, après avoir patienté 10 minutes, plus aucun problème.
Il faut donc croire que, lors du développement de ses modèles avec mode examen pour la rentrée 2015, Casio avait imaginé fort astucieusement un fonctionnement en 3 temps que nous n'avons retrouvé sur aucun modèle concurrent :
Supposons en effet qu'un candidat arrive, d'une façon ou d'une autre, à sortir du mode examen pendant son épreuve.
Il pourra à partir de ce moment consulter à nouveau toutes ses données personnelles, mais pendant ce temps la diode examen restera éteinte.
Les surveillants sont alors censés remarquer que la diode du candidat ne clignote plus et intervenir.
Afin de maximiser les chances que les surveillants puissent remarquer cette fraude, Casio avait donc prévu de forcer tout candidat désactivant le mode examen à rester pendant 10 minutes hors du mode examen avec une diode éteinte.
En gros pour simplifier les choses, toute personne désactivant le mode examen était donc bannie du mode examen pour 10 minutes.
Cette sécurité semble donc au final avoir été abandonnée. Peut-être était-elle gênante dans le cas d'épreuves consécutives...
Mais si il y a eu besoin d'imaginer une telle sécurité, ne serait-ce pas qu'il est finalement assez facile de sortir du mode examen ?...
Nous découvrions qu'il était contrôlé par l'octet d'offset 0x06 en mémoire RAM, octet qui prenait les valeurs suivantes :
- 0xFF : pas d'information (mode examen inactif)
- 0x00 : mode examen désactivé
- 0x95 : mode examen activé
- écriture de 0x95 quand l'utilisateur réalise et valide la combinaison d'activation du mode examen
- écriture de 0x00 quand l'utilisateur réussit l'une des procédures contraignantes permettant de désactiver le mode examen
Or, chaque redémarrage restaurant la mémoire RAM à partir de la sauvegarde en mémoire Flash, chacun de ces changements devenait alors permanent.
Nous nous interrogions par contre, sur comment réagirait la calculatrice si l'on écrivait d'autres valeurs dans l'octet de contrôle du mode examen.
Teamfx sur Planète Casio répond à notre question. Il y a analysé le code de l'OS à la recherche des différentes écritures dans l'octet du mode examen.
Ont été trouvés différents codes écrivant 0x00, d'autres écrivant 0x95, et surtout du code orphelin écrivant une valeur totalement différente, 0x05 !
Un code orphelin est un code qui est bien présent dans l'OS, mais qu'aucun autre code de l'OS ne référence ou appelle, et qui n'est donc jamais exécuté sans intervention d'un élément extérieur à l'OS (comme une application).
Et donc, quel est donc la raison d'être de ce code secret 0x05 ? Qu'est-ce qui se passe si on force l'écriture de 0x05 dans l'octet du mode examen ?
Rien de plus facile : il nous suffit de prendre une image de la mémoire Flash d'une calculatrice Graph 75+E, de modifier l'octet du mode examen en 0x05 dans les deux sauvegardes de la mémoire RAM qu'elle contient, et enfin de programmer cette image sur notre calculatrice à l'aide de fxRemote. Dès le redémarrage de la calculatrice, la mémoire RAM récupèrera alors 0x05 dans l'octet du mode examen.
Apparemment la calculatrice ainsi reprogrammée n'est pas en mode examen, permettant l'accès à la mémoire, aux applications, ainsi qu'aux fonctions de calcul vectoriel.
Mais la surprise, c'est que la calculatrice refuse alors de se mettre en mode examen comme illustré ci-contre !
En tentant d'activer le mode examen, nous obtenons en effet un avertissement comme quoi il est interdit de réactiver le mode examen dans les 10 minutes suivant sa désactivation.
Et effectivement, après avoir patienté 10 minutes, plus aucun problème.
Il faut donc croire que, lors du développement de ses modèles avec mode examen pour la rentrée 2015, Casio avait imaginé fort astucieusement un fonctionnement en 3 temps que nous n'avons retrouvé sur aucun modèle concurrent :
- écriture de 0x95 quand l'utilisateur réalise et valide la combinaison d'activation du mode examen
- écriture de 0x05 quand l'utilisateur réussit l'une des procédures contraignantes permettant de désactiver le mode examen
- écriture de 0x00 10 minutes plus tard, ce qui autorise enfin l'utilisateur à réactiver le mode examen si il le désire
Supposons en effet qu'un candidat arrive, d'une façon ou d'une autre, à sortir du mode examen pendant son épreuve.
Il pourra à partir de ce moment consulter à nouveau toutes ses données personnelles, mais pendant ce temps la diode examen restera éteinte.
Les surveillants sont alors censés remarquer que la diode du candidat ne clignote plus et intervenir.
Afin de maximiser les chances que les surveillants puissent remarquer cette fraude, Casio avait donc prévu de forcer tout candidat désactivant le mode examen à rester pendant 10 minutes hors du mode examen avec une diode éteinte.
En gros pour simplifier les choses, toute personne désactivant le mode examen était donc bannie du mode examen pour 10 minutes.
Cette sécurité semble donc au final avoir été abandonnée. Peut-être était-elle gênante dans le cas d'épreuves consécutives...
Mais si il y a eu besoin d'imaginer une telle sécurité, ne serait-ce pas qu'il est finalement assez facile de sortir du mode examen ?...