π
<-

Premier patch de firmware HP-Prime

Premier patch de firmware HP-Prime

Unread postby critor » 02 Nov 2013, 21:46

Dans une vidéo, Deloge vous vantait le démarrage ultra rapide (comparé à une TI-Nspire CX CAS) en seulement quelques secondes de la HP-Prime.
En effet, Texas Instruments a une haute opinion de la “sécurité”, possiblement due au passé militaire de l’entreprise, et de nos jours une volonté de protéger la poule aux oeufs d’or. La TI-Nspire CX CAS doit franchir deux couches de sécurité lors de son démarrage:
  • le boot1 décompresse le boot2 et vérifie l’authenticité d’une signature avec une clé RSA 2048 bits, avant de lancer le boot2 s’il est validé;
  • le boot2 déchiffre et décompresse l’OS, avant d’en vérifier l’authenticité avec une autre clé RSA 2048 bits… et de le lancer, enfin.
In a video, Deloge gave props to the fast boot speed of the HP Prime, only several seconds whereas the Nspire’s boot procedure takes dozens of seconds (especially on the CX series).
Indeed, Texas Instruments gives priority to “security”, possibly a consequence of the company’s military past, nowadays a will to protect the lucrative business model. The Nspire CX CAS uses two layers of security during its boot process:
  • the boot1 decompresses the boot2 and validates the authenticity of a signature using a 2048-bit RSA key, before launching the boot2 if it passes validation;
  • the boot2 decrypts and decompresses the OS, before validating its authenticity with another 2048-bit RSA key… and launching it, at last.


On pouvait donc supposer que la HP-Prime ne disposait pas d’une telle “sécurité”, à l’image des calculatrices Casio où l’on peut modifier les OS installés comme bon nous semble, à condition de mettre à jour une simple somme de contrôle.
Les guillemets autour de “sécurité” dans la phrase précédente sont là pour rendre compte du fait que ces signatures et ce chiffrage n’empêchent pas le reverse-engineering, les exploits et diverses manipulations que nous avons déjà amplement décrites dans de nombreuses autres news et divers tutorials, et qui ne sont pas l’objet de cette news. Du point de vue de l’utilisateur, le déchiffrement, en particulier, est une pure perte de temps.
Therefore, it felt logical that the HP Prime didn’t use such a “security” scheme, like Casio calculators where the installed OS can be modified at will, provided a simple checksum is updated.
The use of quotes around “security” in the previous sentence is meant to refer to the fact that signatures and encryption do not prevent reverse-engineering, exploits and various manipulations which we already described at length in many other news items and various tutorials, and aren’t directly related to the current news item. From a user’s perspective, decryption (especially) is a pure waste of time.



Les firmwares HP-Prime se composent de plusieurs fichiers.
HP Prime firmwares are made of multiple files.

  • BXCBOOT0.BIN
  • BESTAARM.ROM
  • MASTER.DAT
  • APPSDISK.DAT
Image


Aussi en août, Lionel et moi avions fait une expérience relatée par Lionel.
In August, Lionel and I had made a quick experiment described by Lionel.


Elle consistait à modifier, dans le firmware de la Prime (partie \programs\misc\armfir.elf du système de fichiers FAT16 contenu dans APPSDISK.DAT), des éléments visibles, à l’époque les chaînes d’aide de WHILE et REPEAT.
La modification a été réalisée sous Linux, après montage de l'image:
Code: Select all
mkdir appsdisk; mount -o loop,offset=8192 APPSDISK.DAT appsdisk/

Elle a été effectuée grâce à l’éditeur hexa `hte`, après avoir trouvé les chaînes avec `strings` et un peu de `od`. Du classique, donc.
The experiment was made of a modification, in the Prime’s firmware ( \programs\misc\armfir.elf part of the FAT16 filesystem embedded into APPSDISK.DAT), of some user-visible items, namely the help strings of WHILE and REPEAT.
The modification was performed under Linux, after mounting the image:
Code: Select all
mkdir appsdisk; mount -o loop,offset=8192 APPSDISK.DAT appsdisk/

It was done thanks to the `hte` hex editor, after finding the strings with `strings` and a sprinkling of `od`. No fancy tools.


Bien sûr, pour qu’une modification ait une chance de fonctionner (du moins, nous l’imaginons, mais nous allons poursuivre les tests), il faut mettre à jour la somme MD5 dans le fichier \APPSLIST.MD5 du filesystem FAT16, après avoir calculé la somme MD5 du fichier armfir.elf modifié.
Ensuite, il faut transférer le firmware complet, comprenant le fichier APPSDISK.DAT modifié, à la calculatrice.
Of course, such a modification has no chance of working (well, at least, we think so, but we’ll perform more tests) without updating the MD5 sum in the \APPSLIST.MD5 file of the FAT16 filesystem, after computing the MD5 sum of the modified armfir.elf


Avec ça, c’est bon ? Non, notre expérience en août avait échoué. Les chaînes de caractères de l’aide de WHILE et REPEAT n’avaient pas changé, sur la calculatrice, et nous avions donc supposé que la procédure de validation était plus compliquée. Il fallait quand même tenter les choses simples et très rapides en premier :)
So far, so good ? Nope, our experiment from August had failed. The help strings for WHILE and REPEAT didn’t change, on the calculator, so we supposed that the checking procedure was more complicated. Trying out the simple, quick things first was the appropriate thing to do :)


Mais nous avons compris ce week-end pourquoi nous avions échoué: dans cette expérience, le firmware n’avait pas été intégralement transféré à la calculatrice !
Pour déclencher un transfert complet, une méthode apparemment fiable est de downgrader le firmware, avant de l’upgrader. Peut-être y a-t-il plus simple (modification dans MASTER.DAT ou autre), mais les transferts de firmware vers la Prime sont suffisamment rapides grâce à un contrôleur USB supérieur à celui des Nspire et à un protocole plus malin.
However, this week-end, we understood why our experiment had failed: the firmware hadn’t been fully re-transferred to the calculator !
In order to trigger a full firmware transfer, a seemingly reliable method is to downgrade the firmware before upgrading it back. Maybe there are simpler ways (e.g. modifying MASTER.DAT), but on the Prime, firmware upgrades are fast enough, thanks to an USB controller better than that of the Nspire, and a better protocol.


3054 3053
Lors du downgrade + upgrade, la calculatrice affiche pendant quelques secondes un message "verifying firmware". Il y a donc peut-être bien une signature, mais elle ne concernerait que certains fichiers jugés critiques ?
En tout cas, le fichier APPSDISK.DAT modifié est bien transféré à la calculatrice, et les modifications sont visibles, comme le montrent les photos ci-contre ainsi que la capture d’écran réalisée avec le programme de test de libhpcalcs (“libticalcs pour les Prime”, et davantage) en développement par Lionel et que je teste:
During the upgrade + downgrade, the calculator displays a “verifying firmware” message for several seconds. Therefore, there may be a signature, but it could be applied only to a subset of files considered highly critical ?
Anyhow, the modified APPSDISK.DAT file is correctly transferred to the calculator, and the modifications are visible, as shown by the opposite snapshots as well as the screenshot made with the libhpcalcs (“libticalcs for the Prime”, and more) being developed by Lionel, which I’m testing:

Image

(on remarquera les couleurs avec inversion des teintes rouges et bleues, venant du fait que le post-processing nécessaire sur les images produites par la machine n’est pas encore implémenté)
(notice the inverted colors, caused by the current lack of implementation of necessary post-processing on the images produced by the calculator)


Il est évident que si on peut modifier aussi facilement les chaînes de caractères de l’OS, on peut modifier bien d’autres choses ;)
Espérons donc plein de bonnes choses pour la plate-forme Prime, à commencer par:
  • l’utilisation de la pleine puissance de la machine grâce au code natif (la puissance brute la plus élevée du marché pour une calculatrice à l’heure actuelle, même si elle est faible par rapport aux smartphones modernes);
  • le portage de Linux et l’émulation la machine, largement faisables avant la fin de l’année si une équipe peut y passer assez de temps, d’autant que la machine est basée sur des composants connus, déjà supportés pour la plupart par Linux et de vieux forks de QEMU, voir http://tiplanet.org/hpwiki/index.php?ti ... /Emulation ;
  • la correction de bugs, comme celui de l’indice des suites ne pouvant pas commencer à zéro (très embêtant pour l’enseignement secondaire français).
It is obvious that if modifying the OS’s strings is so easy, then many other things can be modified ;)
Let’s hope the best for the Prime platform, starting with:
  • unleashing the full power of the calculator through native code (at the time of this writing, the highest raw power on a calculator in the entire marketplace, even if it’s low compared to modern smartphones);
  • porting Linux and emulating the calculator, clearly doable before the end of the year if someone can spend enough time on it, all the more the calculator is based on well-known components, most of them already supported by Linux and old QEMU forks, see http://tiplanet.org/hpwiki/index.php?ti ... /Emulation ;
  • bugfixes, such as making it possible for sequence index to start at 0 (the current impossibility to do so is very annoying for French high school teaching).


coécrit par Critor et Lionel Debroux
cowritten by Critor and Lionel Debroux
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.5%
 
Posts: 41980
Images: 15737
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Premier patch de firmware HP-Prime

Unread postby NspireCas » 03 Nov 2013, 13:44

critor wrote:En effet, Texas Instruments a une haute opinion de la “sécurité”, possiblement due au passé militaire de l’entreprise, et de nos jours une volonté de protéger la poule aux oeufs d’or


Le passé militaire de l'entreprise :#fou#: , tu nous raconte stp ?
User avatar
NspireCasModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 6.4%
 
Posts: 1304
Images: 7
Joined: 04 Oct 2012, 20:44
Location: Paris
Gender: Male
Calculator(s):
MyCalcs profile
Class: -

Re: Premier patch de firmware HP-Prime

Unread postby Levak » 03 Nov 2013, 14:02

Nspirecas wrote:Le passé militaire de l'entreprise :#fou#: , tu nous raconte stp ?

Prends la peine de faire une recherche sur wikipedia avant de demander ce qui est évident :
http://en.wikipedia.org/wiki/Texas_Instruments
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Premier patch de firmware HP-Prime

Unread postby NspireCas » 03 Nov 2013, 14:09

J'ai recherché la page française du wiki : http://fr.wikipedia.org/wiki/Texas_Instruments qui est beaucoup moins complet que la page anglaise ;)
Mais merci du lien anglais, je vais chercher
User avatar
NspireCasModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 6.4%
 
Posts: 1304
Images: 7
Joined: 04 Oct 2012, 20:44
Location: Paris
Gender: Male
Calculator(s):
MyCalcs profile
Class: -

Re: Premier patch de firmware HP-Prime

Unread postby Lionel Debroux » 03 Nov 2013, 15:37

Pour des sujets non franco-français, WP FR est rarement plus complet que WP EN...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Premier patch de firmware HP-Prime

Unread postby Yamashita Ren » 03 Nov 2013, 15:52

Lionel Debroux wrote:Pour des sujets non franco-français, WP FR est rarement plus complet que WP EN...

Je dirais même que WP FR est alors franchement incomplet ;)
User avatar
Yamashita Ren
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 93.3%
 
Posts: 32
Joined: 29 Dec 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: ****


Return to News HP

Who is online

Users browsing this forum: No registered users and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
787 utilisateurs:
>759 invités
>21 membres
>7 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)