1ère programmation OS modifié fx-CP400+E
Posted: 29 Jan 2018, 14:22
Il est possible de reprogrammer l'OS des Casio Graph 35+E et Graph 75+E, et d'y faire ainsi tourner des OS modifiés ou tiers, même si ce dernier cas relève encore à ce jour de la science-fiction.
Toutefois cela nécessite l'outil fxRemote dont le code source n'a jamais été publié et que les auteurs ne mettent plus à jour depuis des années.
Les autres modèles Graph 25+E, Graph 90+E et fx-CP400+E n'étaient donc en pratique pas reprogrammables à ce jour.
Les autres modèles Graph 25+E, Graph 90+E et fx-CP400+E n'étaient donc en pratique pas reprogrammables à ce jour.
Mais les choses viennent de changer grâce the6p4c. Ce dernier avait déjà analysé et documenté le format utilisé par l'image d'OS dans le fichier temporaire OSupdateDLL.dll extrait lors de la mise à jour des calculatrices, une simple compression GZip. Il a pris le temps d'expliquer sa démarche pas à pas avec moultes détails, si bien que l'article est accessible sans connaissances techniques bien poussées.
Une fois l'image extraite il devient donc possible en théorie de la modifier, de la recompresser, puis de la réintégrer dans le fichier DLL grâce à un éditeur de ressources.
Théorie que the6p4c s'est empressé de mettre en pratique.
Mais question. Où injecter notre propre code ? Dans l'immédiat il faut trouver une adresse fixe qui tout en étant appelable ne soit pas utilisée par le système en temps normal, afin de ne pas générer de conflit.
the6p4c fait le choix pour cela d'utiliser le mode Debug. C'est un mode qui est proposé lorsque l'on appelle le menu de diagnostics de la machine :
Cette manipulation rajoute un bouton
Et voici, the6p4c nous signe en ce jour historique la toute première programmation d'un système modifié sur calculatrice fx-CP400, le bouton
Une fois l'image extraite il devient donc possible en théorie de la modifier, de la recompresser, puis de la réintégrer dans le fichier DLL grâce à un éditeur de ressources.
Théorie que the6p4c s'est empressé de mettre en pratique.
Mais question. Où injecter notre propre code ? Dans l'immédiat il faut trouver une adresse fixe qui tout en étant appelable ne soit pas utilisée par le système en temps normal, afin de ne pas générer de conflit.
the6p4c fait le choix pour cela d'utiliser le mode Debug. C'est un mode qui est proposé lorsque l'on appelle le menu de diagnostics de la machine :
- éteindre la calculatrice
- allumer la calculatrice en maintenant les touches
=
etEXP
- taper alors rapidement
←
etz
- taper alors rapidement
3
Cette manipulation rajoute un bouton
Checkà l'écran de sélection de la langue, permettant de lancer un programme de tests.
Et voici, the6p4c nous signe en ce jour historique la toute première programmation d'un système modifié sur calculatrice fx-CP400, le bouton
Checkne lançant plus le programme de tests de Casio mais déclenchant l'affichage de deux lignes de texte, comme tu peux le constater toi-même ci-contre ainsi que sur la démo-vidéo ci-dessous :
Précisons que la mise en pratique avec le bouton
Par contre ce qui est remarquable, c'est que la modification du fichier OSupdateDLL.dll va bien au-delà de la fx-CP400+E et peut être appliquée aux autres logiciels de mise à jour Casio fonctionnant sur le même principe, soit pour les modèles Graph 90+E et même Graph 75+E si un jour pour une raison ou pour une autre fxRemote n'était plus exploitable.
En attendant the6p4c est passé à la configuration d'un compilateur C pour fx-CP400+E, histoire d'être capable de sortir rapidement des bouts de code un peu plus évolués qu'un simple affichage de quelques lignes de texte. A suivre...
Checkn'est absolument pas détournable afin de contourner le mode examen. En effet, le mode Debug est annulé à chaque redémarrage de la calculatrice, dont le redémarrage suivant l'activation du mode examen, et qu'en prime le menu de diagnostics n'est pas appelable une fois en mode examen.
Par contre ce qui est remarquable, c'est que la modification du fichier OSupdateDLL.dll va bien au-delà de la fx-CP400+E et peut être appliquée aux autres logiciels de mise à jour Casio fonctionnant sur le même principe, soit pour les modèles Graph 90+E et même Graph 75+E si un jour pour une raison ou pour une autre fxRemote n'était plus exploitable.
En attendant the6p4c est passé à la configuration d'un compilateur C pour fx-CP400+E, histoire d'être capable de sortir rapidement des bouts de code un peu plus évolués qu'un simple affichage de quelques lignes de texte. A suivre...
Sources :