π
<-

Fonctionnement du programme downgrade

C, C++, ASM...

Fonctionnement du programme downgrade

Unread postby zeoki » 06 Feb 2015, 18:26

Bonjour tout le monde!

J'ai reçu il y a peut être un mois mon Nspire CAS Touchpad (monochrome) et la première chose que j'ai fait, grosse bêtise, était de mettre à jour en OS 3.9. Bref, ce post n'est pas pour demander comment corriger mon erreur car je sais que ce n'est pas actuellement possible avec les outils disponibles.

Ce que j'ai fait par contre c'était de télécharger le programme de downgrade pour les modèles CX et j'ai du coup regardé le script lua et j'ai essayé de comprendre son fonctionnement, j'ai donc des petites questions au rapport de ça, et si ceux qui s'y connaissent pourraient possiblement me corriger.

Mon interprétation du fonctionnement:
- Le "hack" est basée autour d'un string en mémoire
- Le
Code: Select all
s..string.rep("\1", 783410)
est pour faire "déborder" le string de la mémoire du programme LUA, genre "buffer overflow".
- Ensuite le long chaîne de caractères rajouté est composé d'instructions ARM 32 permettant de faire quelque chose à la calculette pour permettre le downgrade, et seront exécutés lors de la connexion de la prise USB remplaçant le code précédent devant être exécuté du au fait que le string déborde dans sa mémoire.

Mes questions:
- Premièrement, est-ce que mon interprétation est correcte?
- Le
Code: Select all
s = s..""
, que fait il?
- Pourquoi dans la répétition est composée de \1 et non de \0 ou autre chose? Hasard ou y a t-il une raison?
- Pourquoi la répétion de ces 783410 octets exactement, pourrait-il être varié?

Pour le instructions (si c'est bien ça), je me suis amusé à les convertir en hexa ce qui me donnais ce que j'ai en dessous, mais je n'ai trouvé aucune solution pour convertir ça en asm pour voir ce qui se passe réellement... Je vais essayer d'écrire direct ça dans un fichier binaire et puis de le passer par un décompilateur ARM 32, car de tête les instructions ont l'air bien plus compliqué à ce que je suis habitué :p
Code: Select all
ff5f2de95810dfe5011051e2ff9fbd080110a0e348108fe548608fe2b220d6e0012c42e2b210d6e0011c41e20640a0e10150d4e4014044e2025025e00150c4e4011051e2f9ffff1a0110a0e3011041e27aff17eefdffff1a173f07ee36ff2fe1ff9fbde8020202020f015405ff4022e6272f90ea0d2f80ef1b3f40ed2b5f90ea0e5f5aed0f4f9daa0c4f8baf0b4f8dabf5f0f0a507df80ea320f0fe4ff80b2e73b0b0f0f0f0f0f0f0e0f0f0f0b3f90ea0d2fafec072f8cea0f0f059f0e2dafec2f1f9dea232f90ea233f90ea0d0f5eee0c3f80ef0b0f0f152f2f90ea0d3f9ce81f2fafec0f2f8cea11f020ee1f3f90ea0d2fafec072f8cea6fde381fd70c0f0f0f0f0f0f0f0f059f1b3f90ea1b2f90ea0f238cea0f2fafec072f8cea0f238cea11f020ee0f0f099f5eeac3152f3f90ea2f2f90ea0c3f80ef0d3f9ce80f0f9cea1b3f90ea1f0f5fec0c0faf0e0f0faf1c11f020ee7b0c0f0f0f0f0f0fef43071f2f3f90ea2f2f90ea0c3f80ef0d3f9ce80f0f9cea1b3f90ea1f0f5fec0c0faf0e0f0faf1c11f020ee4f0c0f0f0f0f0f0f57b6031fff4022e66f4d90ea2fbf82ed8ad142ed03df42edccf0f0e45f3d90ea0b4f80ef0c6f9be80f3f99ea053f4ced090f5cec0cfe809f860f0fe50a0f0fe5040f0fe51e0f0fe51c0f0fe58b0f0fe58c0f0fe51b0f0fe5172d90ea173d90ea44250cea1b2d90ea1b3d90ea1b228cea1f0f0fe5032d90ea033d90eaa32a8cea072d90ea0c384ced03228cea060f0fe5f32e90eaf33e90ea0e0f0fe5f72e90eaf73e90eafb298cea0d0f0fe5ff2e90eaef3e90eaeb298cea0f3f99ea033f4ced0b3fccec0e0f5cec4d0f0f95dbae90ea1a97afec0d73afec0f3fafec068fafee673704ea7f7704ea050f57ee250f0f257f3714ea63d704ea0cdf42efa9f0f0e40f5fafec074f82ed0a3fafee0f5f82ea0b5f82ea081fafee062fafee0fcfafee0b0fafee33f020ee073fd2eaa50f5cec190f0f150e3fdbeac90f5cec1c0f0f150d3fdbea830f5cec1f0f0f150c3fdbea9d0f5cec020f0f150f2f99ea473e90ea1f0f5dec0a3faf1e0b0fafee081fafee072fafee085fcbea095fcbea0a5fcbea0b5fcbea3cf020ee0e3fafec673704ea088f87ef63d714eaddf0f0e50f3fafec6f3704ea673714ea0f0f5cecf34f900a0b4f800ff74f901a0b4f801f8cf0f0e4891144ed0f2fafec0f3fafee0b0fafee3cf020ee2d0f0fe560f0f0e40f4fafec895144edc31f90ea0b2fafee0b3fafee0f4f82ea0b4f82ea0fcfafee0a0fafee33f020ee0f2f99eaa31f90ea1f0f5dec8e018aedab3f90ea070f8fed0b3faf1e0e1f80ef0b2fafec3cf020ee0b0f5fee239f140a3baf140a0d74af0caaf0f0052b5f44ed4f472aea6ff0f0e40a1fafee0b2fafee0f3fafee6b0f90ea0f0f80efd5f0f0e50f0fafec2fdf44edff80b2e7f70d0f0f0f0f0f0f63a7481ef0b0f81f9f1a231e0fbfe41fbb2b4b1e0ffffb1fd79e271e47717f1e0fdf131e4771791e0fdf2d1e37717f1e0ff11a0f135f071f200e0f0f070e0f0f33070f0fdc0f0f0f93554f1f930f0f0f4b607861687d6e6b6a2f7f7d607b6a6c7b6660612f6b667c6e6d636a6b210f4d60607b6b6e7b6e2f61607b2f69607a616b2e0f9e5091430f5f6e7d7b667b6660612f7b6e6d636a2f61607b2f69607a616b2e0f0f0f0f0f0f4f0b0f0f0f0f0f0f0f0f0f0f0f0f0f0f01010101807e7011f87e7011d07f7011948b70112886701101917011a491701148927011d09370110101010174cb1c110180010158957011587f70119c7e701101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101f84ea41ffc7f0101204fa41ffc7f0101060101010101010101010101010101010230010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010801010101010101088660010101010101dea51ffc7f0101e086600101010101010101010101010120bfa51ffc7f010160d9a51ffc7f0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010138d01c11


Désolé pour mes questions potentiellement débiles; j'aimerais pouvoir bien comprendre pour peut être aider à chercher des solutions pour la CAS monochrome (même si je sais que vous avez des longueurs d'avance sur moi lol).

Merci pour votre temps,
zeoki :)

PS: Je n'étais pas sur où poster ce post, je voulais pas mettre dans le lua car même si c'est sur des questions posées sur un programme lua, elles sont plus orientées envers ndless et tout car je devine que le programme execute du code natif là?
User avatar
zeoki
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 3
Joined: 10 Jan 2015, 14:01
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S

Re: Fonctionnement du programme downgrade

Unread postby Levak » 06 Feb 2015, 18:39

zeoki wrote:- Premièrement, est-ce que mon interprétation est correcte?

Oui.

- Le
Code: Select all
s = s..""
, que fait il?

Simple spéculation, je ne sais pas si c'est cela, mais j'imagine que le fait de concaténer à une chaîne vide va produire un realloc ou une copie de la chaine ailleurs en mémoire.

- Pourquoi dans la répétition est composée de \1 et non de \0 ou autre chose? Hasard ou y a t-il une raison?

L encore spéculation, j'imagine que si la chaîne était remplie de \0, une concaténation future (ou autre fonction) pourrait provoquer une troncature de la chaîne.

- Pourquoi la répétion de ces 783410 octets exactement, pourrait-il être varié?

Pour taper au bon endroit en mémoire ? Cette taille dépend très certainement de la version d'OS également.

Pour le instructions (si c'est bien ça), je me suis amusé à les convertir en hexa ce qui me donnais ce que j'ai en dessous, mais je n'ai trouvé aucune solution pour convertir ça en asm pour voir ce qui se passe réellement... Je vais essayer d'écrire direct ça dans un fichier binaire et puis de le passer par un décompilateur ARM 32, car de tête les instructions ont l'air bien plus compliqué à ce que je suis habitué :p

http://www2.onlinedisassembler.com/odaweb/

Désolé pour mes questions potentiellement débiles; j'aimerais pouvoir bien comprendre pour peut être aider à chercher des solutions pour la CAS monochrome (même si je sais que vous avez des longueurs d'avance sur moi lol).

Rassure-toi, elles sont loin d'être débile, et sont d'ailleurs très bien posées.
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: Fonctionnement du programme downgrade

Unread postby zeoki » 06 Feb 2015, 19:17

Merci beaucoup Levak!

Je vais aller voir ce code alors, énorme ton décompileur en ligne, il me sera bien utile je sens :D
User avatar
zeoki
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 3
Joined: 10 Jan 2015, 14:01
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S


Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 9 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.
1536 utilisateurs:
>1513 invités
>17 membres
>6 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)