π
<-
Chat plein-écran
[^]

Fonctionnement du programme downgrade

C, C++, ASM...

Fonctionnement du programme downgrade

Message non lude zeoki » 06 Fév 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: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
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à?
Avatar de l’utilisateur
zeoki
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 3
Inscription: 10 Jan 2015, 14:01
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S

Re: Fonctionnement du programme downgrade

Message non lude Levak » 06 Fév 2015, 18:39

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

Oui.

- Le
Code: Tout sélectionner
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
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: Fonctionnement du programme downgrade

Message non lude zeoki » 06 Fév 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
Avatar de l’utilisateur
zeoki
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 3
Inscription: 10 Jan 2015, 14:01
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S


Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 21 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1452 utilisateurs:
>1434 invités
>13 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)