PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

ephase : Téléphone Android chiffré, écran cassé, données perdues? Que neni!

lundi 30 novembre 2015 à 01:40

Et voilà qu'après une mauvaise chute, mon téléphone se retrouve sans écran. Et si l'écrasante majorité de mes données sensibles sont automatiquement synchronisée (coucou Syncthing, Radicale etc.), ce n'est pas le cas de ma base de donnée SMS. Vous me direz alors qu'adb est mon ami, oui mais il y a un hic, et pas des moindre : mon téléphone est chiffré par un schéma.

En bon libriste que je suis, mon téléphone (un Samsung Galaxy S4) tourne sur un version communautaire d'Android (Cyanogenmod avec Free_Cyngn) avec un recovery custom : TWRP. Celui-ci propose de monter la partition /data chiffrée, mais saisir le schéma sur un écran cassé, c'est difficile. Pour corser le tout, j'utilise un schéma de 4*4 points qui n'était pas compatible avec l'interface graphique de TWRP.

Mais comme tout est prévu, il est possible d'utiliser un outil en ligne de commande : twrp avec adb, mais comment rentrer mon schéma en ligne de commande? Un petit tour sur le sur tracker GitHub de TWRP où utilisateur nommé @smarek donne la solution : un petit programme java pour déduire le mot de passe en fonction du schéma. Mais il va falloir repérer les numéros des points utilisés par votre schéma et installer une bricole...

Installation,

Je vais prendre ici l'exemple d'ArchLinux (puisque c'est la distribution que j'utilise). ouvrez un terminal et installez les paquets openjdk

yaourt -S jdk-openjdk8

Trouver la suite de chiffre en fonction du schéma

Si on prend l'exemple de mon pattern de 4*4, il y a 16 points. Le point zéro est en haut à gauche et le point 15 en bas à droite. On pourrait alors le dessiner comme ci-dessous :

img

Je prends comme exemple le schéma correspond au dessin de droite, les numéros des points sont 0, 4, 8, 12, 9 et 6

Créer le programme java

J'ouvre mon éditeur de texte favori et colle le code suivant :

// file named Pattern.java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
public class Pattern {
public static void main(String... args) {
//remplacez ces chiffres par ceux issus de votre pattern
int[] pattern = {0,4,8,12,9,6};  
byte[] res = new byte[pattern.length];
for( int i = 0; i < pattern.length; i++ ) {
 res[i] = (byte) (pattern[i]);
}

StringBuffer hexString = new StringBuffer();
for (int i = 0; i < res.length; i++) {
            if ((0xff & res[i]) < 0x10) {
                hexString.append("0"
                        + Integer.toHexString((0xFF & res[i])));
            } else {
                hexString.append(Integer.toHexString(0xFF & res[i]));
            }
        }
    System.out.print("unlock code: ");
    System.out.println(hexString);
}
}

j'ai bien pris soin de remplacer la suite de chiffre indiqué dans le code par celle déduite de mon schéma; je sépare les chiffres par des virgules. J'enregistre le fichier dans mon dossier personnel, et le nomme Pattern.java. Il ne me reste plus qu'à lancer la compilation du bouzin et son exécution :

javac Pattern.java && java Pattern.java
unlock code: 0004080c0906

Et voilà le mot de passe pour débloquer mes données.

Se connectez au téléphone

Maintenant je démarre le téléphone en mode recovery, pour mon Galaxy S4 c'est la combinaison du bouton d'allumage, du bouton home et de la touche volume haut. Une fois le téléphone démarré je le relie à ordinateur et dans un terminal en mode root je lance (sudo fonctionne aussi):

adb shell twrp decrypt 0004080c0906

Maintenant il ne me reste plus qu'a récupérer les données de l'application qui m'intéresse : SMS Secure. Je créé un répertoire de destination sur mon ordinateur et je rapatrie les fichiers avec les commandes

mkdir /root/smssecure
cd /root/smssecure/
adb pull /data/data/org.smssecure.smssecure

Là tous les fichiers de l’application vont êtres disponibles dans le répertoire /root/smssecure. en vas de doute sur le dossier contenant les données à sauvegarder, je peux toujours lancer un adb shell ls -la /data/data/

restaurer les fichiers

Pour restaurer les fichiers sur mon nouveau téléphone (sur lequel est installé TWRP, c'est évident), je vais d'abord installer l'application en question, puis je le démarre en mode recovery, je le branche en USB et je lance les commandes suivantes :

adb shell mount /data
adb shell ls -la /data/data/org.smssecure.smssecure
drwxr-x--x    2 u0_a87   u0_a87        4096 Nov 30 00:19 .
drwxrwx--x  108 system   system        4096 Nov 30 00:19 ..
lrwxrwxrwx    1 install  install         39 Nov 30 00:19 lib -> /data/app-lib/org.smssecure.smssecure-1

Ce téléphone n'étant pas (encore) chiffré, je monte de dossier data avec une commande classique. Puis je vérifie le propriétaire et le groupe du dossier cible (ici u0_a87). C'est très important pour la suite. Je copie maintenant les éléments précédemment sauvegardées avec les commandes

adb push /root/smssecure/ /data/data/org.smssecure.smssecure/
adb shell chown u0_a87:u0_a87 /data/data/org.smssecure.smssecure/* -R

Et voilà mes SMS revenus avec l'aide d'adb et de java, il ne reste plus qu'à redémarrer mon nouveau téléphone.

Conclusion

Cette partie traite seulement les données des applications qui ne sont pas dans le dossier accessibles par l'utilisateur mais bien dans une partie cachée. Il est intéressant de noté qu'une application libre permet de faire facilement des sauvegardes (et restaurations) de ce genre de données : oandbackup. couplé à Openkeychain pour le chiffrement (par clés GPG) et Syncthing, se pourrait-être un excellent moyen de sauvegarder des données des applications non?

Gravatar de ephase
Original post of ephase.Votez pour ce billet sur Planet Libre.

Planet Libre : Brèves du Planet Libre - lundi 30, novembre 2015

lundi 30 novembre 2015 à 00:00

Placer le repertoire /tmp en mémoire vive sous Debian - debian-fr.org

systemd tmpfs Debian tips


antistress : Un changement postérieur à Debian 8 (dans le paquet systemd) modifie la procédure permettant de placer le repertoire /tmp en mémoire vive.


Nos excuses à Pierre Lellouche pour avoir défendu les droits de l'homme - Numerama

pistage institution parlement


antistress : "Numerama publie un droit de réponse de Pierre Lellouche qui nous accuse, par notre rappel systématique aux droits fondamentaux, d'avoir été le complice moral des attentats à travers une « attitude de cécité volontaire ou de déni » face au terrorisme. Le député nous incite à présenter des excuses. Les voici."


Mozilla coupe les ponts financiers avec Google - Next INpact

Mozilla Firefox FirefoxOS Google


antistress : "Mozilla n’a désormais plus aucune dépendance financière vis-à-vis de Google. Si 2014 a été globalement bonne, l’éditeur estime que l’année 2015 sera encore meilleure, grâce à la multiplication des accords sur les moteurs de recherche. Pour autant, les défis de l’entreprise restent nombreux, particulièrement dans le monde mobile."


Gravatar de Planet Libre
Original post of Planet Libre.Votez pour ce billet sur Planet Libre.

Articles similaires

Okki : Sortie de Lollypop 0.9.70

dimanche 29 novembre 2015 à 19:55
Lollypop 0.9.70 et la fenêtre surgissante sur un morceau

Ça fait plusieurs mois que nous n’avons pas parlé du lecteur de musique Lollypop, qui continue pourtant son petit bonhomme de chemin. Alors, plutôt que de me limiter aux nouveautés de cette dernière version, j’ai préféré opter pour un récapitulatif des principales nouveautés de ces derniers mois :

Sans oublier les inévitables corrections de bugs ;)

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Articles similaires

kao : Arduino : logiciel et contrôle de la carte :

dimanche 29 novembre 2015 à 09:14

Je me suis lancé à la découverte du monde Arduino. Afin de démarrer sur de bonne base, je me suis commandé un Arduino Starter Kit en Français. En plus de contenir, une carte Arduino Uno, un jeu de composant de base, il comprend aussi un bouquin d’exercice très bien écrit et très pédagogique. Cela permet de découvrir en douceur la fabrication d’un circuit et la programmation d’un micro-contrôleur.

Un paquet arduino existe dans Debian et il embarque tout le nécessaire pour programmer et contrôler les différentes cartes.

apt install arduino

CaptureArduino

La carte dispose d’un port USB pour pouvoir interagir avec le micro-contrôleur. Je n’ai pas réussi à faire fonctionner la carte sur un USB 3 mais en le branchant en USB 2, le noyau arrive à voir la carte :

dmesg | tail
[ 280.694367] usb 3-10: new full-speed USB device number 10 using xhci_hcd
[ 280.824363] usb 3-10: New USB device found, idVendor=2a03, idProduct=0043
[ 280.824366] usb 3-10: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 280.824367] usb 3-10: Product: Arduino Uno
[ 280.824367] usb 3-10: Manufacturer: Arduino Srl
[ 280.824368] usb 3-10: SerialNumber: 85xx4383xxxxxxxxxx
[ 280.824544] usb 3-10: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 280.824926] cdc_acm 3-10:1.0: ttyACM0: USB ACM device

dmseg permet de voir la mémoire tampon des messages du noyau, tail n’affiche que la fin de la liste en supposant que la carte a été branché au dernier moment.

Ici la carte apparaîtra sous le nom ttyACM0 dans le dossier /dev et si j’en liste le contenu, je vois ma carte qui appartient au groupe dialout.

ls -l /dev/tty*
crw-rw---- 1 root       dialout 166,  0 nov.   6 17:38 /dev/ttyACM0

Je m’ajoute donc au groupe dialout afin de pouvoir utiliser la carte facilement depuis le logiciel arduino sans passer par root ou sudo.

usermod -a -G dialout Nom_Utilisateur

Certaine carte peuvent nécessiter plutôt l’ajout au groupe tty ou uucp.

Une fois l’ajout fait, je me reconnecte à ma session et cette fois-ci je vois bien ma carte depuis le logiciel Arduino directement:CarteSerie

Voilà, la communication peut se faire par port série, dans les deux sens, soit en télé-versant sur la carte le code compilé, soit en écoutant le port et en affichant le résultat :

Arduino Port Serie

Bref tout ça pour dire que ce n’est pas vraiment compliqué et que j’ai été agréablement surpris par la facilité pour construire et programmer son propre circuit.

Gravatar de kao
Original post of kao.Votez pour ce billet sur Planet Libre.

elementary OS : Les mockups de Vlad Merk

samedi 28 novembre 2015 à 16:32

Vlad Merk est un utilisateur d’elementary OS qui sévit depuis peu de temps sur la communauté anglophone Google+ de la distribution. Il n’est pas développeur mais designer, il ne tarie pas d’effort pour tenter de convaincre de potentiels développeurs à créer des applications elementary en produisant un certain nombre de mockups. Je vais justement vous présenter ses mockups:

screenshot 28-11-2015 16:08:07

 

 

 

 

screenshot 28-11-2015 16:09:04

 

screenshot 28-11-2015 16:09:35

screenshot 28-11-2015 16:09:58

screenshot 28-11-2015 16:10:27

screenshot 28-11-2015 16:10:58

screenshot 28-11-2015 16:11:33

screenshot 28-11-2015 16:12:14

screenshot 28-11-2015 16:12:47

screenshot 28-11-2015 16:13:34

Alors qu’en pensez-vous ? Pour ma part je suis assez d’accord avec la mention “Great if U can bring it to life!”

Le billet Les mockups de Vlad Merk a été publié sur le site de la elementary OS -

Gravatar de elementary OS
Original post of elementary OS.Votez pour ce billet sur Planet Libre.