Copyright 2018-2019 Tchernobyl. Toute reproduction interdite sans l'autorisation de l'auteur

Reverse engineering sur son téléphone Huawei

Tout d’abord, qu’est-ce que le reverse engineering ? C’est super simple ça tiens en trois mots: hacker son matériel ou en un peu plus de mots: défaire le travail des ingénieurs.

Ça peut être Apple avec les jailbreaks ou une Nintendo Switch, tant que vous vous amusez à contourner les limites de l’appareil imposées par le fabricant (ex: installer Linux ou même passer admin), vous êtes dans cette optique là, de reverse engineering (ou rétro ingénierie en français).

Dans mon cas, il y a 2 jours de cela, j’ai dû mettre ma casquette d’emm*rdeur de première pour les ingénieur de Huawei 🙂

En effet, vouant un culte sans faille pour les logiciels à la fois libres et à la fois non NSA compliant, j’ai voulu débarrasser mon téléphone (de marque Huawei) du véritable bloatware que représente pour moi EMUI, ou la version modifié d’Android pour Huawei, et ainsi installer une image Android (ou une ROM) un peu plus libre un peu façon Lineage OS ou Paranoid Android.

C’était sans compter sur Huawei qui verrouille le bootloader de ces téléphones…

Mais pas de panique ! Il y a moyen de déverrouiller son bootloader en allant sur le site Huawei et en entrant tout un tas d’information du type: IMEI, Product ID et modèle. L’algorithme génère par la suite le mot de passe de déverrouillage du bootloader…enfin générait.

En effet, depuis juillet 2018, Huawei ne fourni plus de code de déverrouillages comme indiqué sur le communiqué ci-dessous.

Image result for huawei tweet bootloader

Nombreux ont été indignés par cette décision qui en plus de paralyser totalement le travail de certains développeurs de ROM, représente une  véritable atteinte aux droits du consommateur. Ce genre de décision me dégoutte au plus au point.

On est au même niveau que Polaroid qui bloque l’installation de Linux: une décision totalement commerciale qui confine le produit à son utilisation prévue « dans les termes du contrat ».

Passons maintenant à comment j’ai défait pour ainsi dire le travail des ingénieurs de Huawei (ou plutôt des commerciaux). 

Tout d’abord il faut savoir que le bootloader, chez Huawei, n’est pas unhackable, il est juste vérouillé avec un mot de passe unique pour chaque appareil (il dépend de l’IMEI de l’appareil). Il y a donc deux options selon moi:

_ La première consiste à cracker l’algorithme de génération du mot de passe, on sait qu’il dépend de l’IMEI et qu’il fait 16 caractères.

_ La seconde consiste à partir du postulat que le code est dans l’appareil. 

Je ne sais pas quelle option vous préférez, mais personnellement je suis parti sur la seconde option. Je dois cependant, avant de commencer, dire que je ne suis absolument pas un expert en téléphone. J’ai déjà du mal avec le concept de bootloader donc je vais laisser les plus adroits sur le sujet me corriger dans les commentaires.

Enfin bref, après m’être renseigné et épluché les forums spécialisés, j’ai constaté que la plupart des gens concernés n’était pour ainsi dire pas du tout des lumières. En effet, j’en attendais un peu plus de la communauté Android plutôt que de voir des pubs pour des logiciels payants qui soit-disant fonctionnent et donnent le fameux code.

J’ai donc mis la main à la pâte via ADB juste après être passé root sur mon appareil. Je pouvais alors me balader dans les fichiers de mon téléphone sans aucune contrainte. C’est ainsi que j’ai dumpé, cloné et examiné tout un tas de fichiers dans des répertoires obscurs.

Et j’ai finalement réussi \o/ 

Il se trouve en effet que le mot de passe de déverrouillage du bootloader se situait dans la mémoire du téléphone. Plus précisément dans la partition /dev/block/mmcblk0p7 qui correspond à ABOOT. Voilà comment je m’y suis pris pour le récupérer:

$ adb shell
$ su
# dd if=/dev/block/mmcblk0p7 of=/data/local/tmp/test/bootinfo.img
# chmod 755 /data/local/tmp/test/bootinfo.img 

pour dupliquer la partition puis:


$ adb pull /data/local/tmp/test/bootinfo.img bootinfo.img $ bless bootinfo.img

pour la visualiser sur mon PC à l’aide de bless, un éditeur hexadecimal.

J’ai mis un peu de temps à le trouver compte tenu de la longueur du fichier (4 Mo)

En épluchant un blog chinois j’ai vu qu’il y avait deux autres façons d’extraire le fameux mot de passe. Je dois par contre prévenir que le margoulin a l’air sacrément chaud du bulbe étant donné qu’il va jusqu’à décompiler à l’aide d’IDA l’application du mode ingénieur du téléphone. Enfin bon j’en dis pas plus ça se passe ici.

Une fois le mot de passe découvert il ne reste plus qu’à déverrouiller une bonne fois pour toute le bootloader. Chose qui va bien entendu supprimer toute les données de votre téléphone et bien sûr totalement annuler la garantie fabricant donc à ne pas faire si vous n’assumez pas pleinement vos responsabilités 🙂

$ adb reboot bootloader
# fastboot oem unlock MOT_DE_PASSE
OKAY [  0.341s]
finished. total time: 0.341s 

Et voilà, par la suite on pourra flasher ce qu’on veut pour installer ce qu’on veut

 Si maintenant je pouvais dire un mot à tout les jean-xda-forum et autres communautés Android qui appelaient à acheter ses code je dirais:

« Ce n’est pas une honte de ne pas pouvoir, mais bien de ne pas vouloir apprendre. « 
Proverbe français ; Le recueil d’apophtegmes et axiomes (1855)

@tchernobyl

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*
*

Snow

Ctrl + D

#Réduisons_nos_émissions_de_CO2

PS: mets le site en FAVORIS sur mobile !!!