Vous êtes sur la page 1sur 5

Récupération de la clé XTEA de décryptage du morebox

1 – Introduction

Actuellement au cours de l'étude du firmware morebox (ainsi que pour les autres décodeurs), j'ai
toujours été bloqué par l'obtention de la clé de décryptage du maincode, si je peux le faire
facilement pour les alpha et béta que je possède, il en va autrement pour les autres décodeurs et je
dois donc compter sur les possesseurs des autres modèles.

Je sais que nombre d'entre-vous ne désire pas ouvrir leur décodeurs et encore moins y soudés
quelques fils et certains n'ont pas les moyens d'investir dans des interfaces permettant l'espionnage
des données,

J'ai donc travaillé sur une autre méthode permettant d'obtenir la clé de décryptage sans
intervention physique et avec le matériel de base utilisé lors de la mise à jour des firmwares,

2 – Principe de fonctionnement

Le bootloader est responsable du décryptage et de la décompression du maincode, pour se faire il


analyse l'entête du maincode pour savoir si celui-ci est crypté et selon quelle méthode.

Il peut selon les modèles, réalisé ceci:

• envoyer une clé de 8 octets vers le MCU en face avant et ensuite utiliser celle-ci pour
obtenir un clé XTEA de 16 octets (Alpha),
• envoyer une clé de 16 octets vers le MCU, faire décrypter une routine par le MCU, utiliser
la clé de retour avec cette routine pour obtenir la clé XTEA de 16 octets (Béta),
• envoyer une clé de 16 octets précédent les données du maincode vers le MCU, faire
décrypter une routine, utiliser celle-ci avec la clé de retour pour obtenir la clé XTEA de 16
octets (Morebox et autres).

Selon le préfixe précédant les données du maincode: MAIN, CODE ou MORE, un algorithme de
décryptage de la clé de départ est utilisé par le MCU.

Comme le bootloader réalise toutes ses opérations, il doit donc connaître la clé finale de
décryptage à un moment donné mais malheureusement il l'efface et un système anti-jtag est
implémenté dans la routine cryptée et il est difficile sans connaître la clé de cryptage du MCU de
la recoder pour utiliser le dump JTAG.

La solution que j'ai utilisée est de modifier le bootloader pour qu'il envoie la clé via le port série
au lieu de l'effacer,

Il faut donc un bootloader modifié, un loader permettant la mise à jour forcée du loader et un
logiciel qui va récupérer la clé.

En analysant les bootloader du béta et du morebox, on se rend compte qu'il s'agit des même, il y a
juste une inversion dans la séquence du test de détection entre la méthode CODE ou la méthode
MORE, d'ailleurs ils ont tous les deux le même numéro de version,

3 – Mise en oeuvre

!! TOUT LES TESTS ONT ETE FAITS AVEC UN BETA !!


Nous allons donc commencer par lancer le programme de mise à jour 2.0.0b qui ne vérifie pas les
versions et permet de mettre à jour le bootloader sans modifier son numéro de version

Et on arrive ici:

On lance le Connect et on allume le décodeur et on obtient :


On double clique sur bootloader et on choisi la version XTEA en format abs, c'est le même que
bin mais il faut renommer sinon il ne les prends pas :

On valide par Ouvrir et ensuite Next et il démarre la séquence que vous connaissez :

Et au final:
Regardez si lors du reboot du décodeur l'indication PRC s'affiche (on dirait plutot Pac), cela
indique que le bootloader a bien été modifié.

Clique sur Finish, on a fini le flash du bootloader.

Maintenant, on peut éteindre avec le bouton power et lancer le programme suivant:

Vous allez obtenir la fenêtre suivante :

Sélectionner le port COM qui correspond à votre flash habituel et cliquer sur Listen, allumez
ensuite votre décodeur et après quelque secondes :
Bingo, il a obtenu la clé!

ATTENTION ! ATTENTION ! ATTENTION !

Les fenêtres sont différentes car j'ai du changer de PC, en effet sur le premier (COM3), un port
COM virtuel via un connecteur USB, la mise à jour se fait bien mais les données pour la clé sont
farfelues.

Par contre sur un vrai port COM, les données sont correctes, je préconise donc de toujours utilisé
un vrai port COM lors d'expérimentation cruciales comme celle-ci.

4 – Conclusion

Et maintenant? Simple vous m'envoyer la clé ainsi que le le contenu du champ mémo à mon
adresse mail ou en MP et je pourrai alors décoder le maincode et à partir de là, peut être décrypter
le firmware du MCU et au final pouvoir me passer de ce logiciel pour décrypter les futurs
maincodes.

Il est possible que la même méthode soit applicable pour les autres décodeurs.

Vous désirez m'aider et participer à ce projet? Simple contactez-moi via MP ou email et je vous
enverrai le pack contenant tous le nécessaire pour réaliser cela, mais il faut avoir le décodeur
adéquat (morebox pour le moment), un vrai port com ou un USB fonctionnant très bien (testez-le
avec un béta) et ne pas allez poster la clé ni sur le forum, ni autre part sinon on va encore se
retrouver avec des maincode fake ou des gros cous qui diront qu'ils ont fait ça eux-même,

PRC-600

Vous aimerez peut-être aussi