Jouons avec les nouveaux firmwares des NAS LG N1T1

Je continue avec les articles sur les firmwares des NAS LG N1T1. Je vais vous montrer comment extraire complètement le firmware et comment refaire le .bin.

Attention : avant tout manipulation, pensez à faire des sauvegardes de vos documents. Et n’oubliez pas qu’il y’a un risque de briquer votre NAS.

Toutes les lignes commençant par un $ sont des commandes shell.

Pré-requis :

  • gpg
  • l’archive du firmware vers. 9595

Extraction et déchiffrement du Firmware

On commence par extraire le .zip du firmware qu’on a récupéré sur le site de LG.

$ unzip firmware-nt1_9595rfke.zip

Une fois le .zip extrait, vous aurez un fichier .bin que l’on peut extraire avec la commande tar.

$ file firmware-nt1_9595rfke.bin 
firmware-nt1_9595rfke.bin: POSIX tar archive (GNU)
# On crée un répertoire firmware
$ mkdir firmware
# On extrait dans le répertoire firmware le contenu de l'archive firmware-nt1_9595rfke.bin
$ tar xpvf firmware-nt1_9595rfke.bin -C firmware
x ./
x ./preinst.sh
x ./INCLUDE
x ./MODEL
x ./VERSION
x ./TYPE
x ./firmware.tar.gz
x ./postinst.sh
x ./SIZE
x ./ENCRYPTION
x ./MD5SUM
x ./PVERSION

Ensuite, nous allons dans le répertoire firmware, dedans vous trouverez plusieurs fichiers dont un qui s’appelle firmware.tar.gz. C’est celui qui nous intéresse car il contient le filesystem.

$ cd firmware
$ file firmware.tar.gz 
firmware.tar.gz: DOS executable (COM)

Si nous tentons d’extraire le fichier firmware.tar.gz, nous obtenons une erreur. C’est parce que l’archive est chiffrée.

$ tar xpzf firmware.tar.gz 
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.

Voici la commande qui va nous permettre de déchiffrer l’archive. La passphrase est composée du contenu du fichier MD5SUM, d’un ‘.’ et du contenu du fichier MODEL.

$ gpg --passphrase=91cae1798718567e1f9abfd280eb7332.nt1 --output=firmwarenew.tgz -d firmware.tar.gz

Si vous comparez les valeurs md5 de la nouvelle archive firmwarenew.tgz et celle contenu dans le fichier MD5SUM, vous verrez qu’elles sont identiques.

$ md5 firmwarenew.tgz 
MD5 (firmwarenew.tgz) = 91cae1798718567e1f9abfd280eb7332
$ cat MD5SUM 
91cae1798718567e1f9abfd280eb7332

On peut voir que notre fichier firmwarenew.tgz est bien une archive tar.gz.

$ file firmwarenew.tgz
firmwarenew.tgz: gzip compressed data, from Unix, last modified: Thu Nov 17 11:06:17 2011

Nous allons créer un répertoire firmware_tree, nous allons mettre dans celui-ci le contenu de l’archive firmwarenew.tgz.

# On crée notre répertoire firmware_tree
$ mkdir firmware_tree
# On extrait l'archive firmwarenew.tgz dans le répertoire firmware_tree
$ tar xpzf firmwarenew.tgz -C firmware_tree/

Allons dans notre répertoire firmware_tree et regardons ce qu’il contient.

$ cd firmware_tree/
$ ll
total 8
drwxr-xr-x  144 Alexis  staff   4,8K 17 nov  2011 bin
drwxr-xr-x    5 Alexis  staff   170B 17 nov  2011 boot
drwxr-xr-x   12 Alexis  staff   408B 19 mai  2011 dev
drwxr-xr-x  171 Alexis  staff   5,7K 17 nov  2011 etc
drwxr-xr-x    2 Alexis  staff    68B 14 déc  2010 home
drwxr-xr-x  154 Alexis  staff   5,1K 17 nov  2011 lib
lrwxr-xr-x    1 Alexis  staff    11B 19 mai  2011 linuxrc -> bin/busybox
drwxr-xr-x    2 Alexis  staff    68B 15 mar  2011 media
drwxr-xr-x    4 Alexis  staff   136B 17 nov  2011 mnt
drwxr-xr-x    2 Alexis  staff    68B 15 mar  2011 opt
drwxr-xr-x    2 Alexis  staff    68B 14 déc  2010 proc
drwx------    5 Alexis  staff   170B 17 nov  2011 root
drwxr-xr-x  167 Alexis  staff   5,5K 17 nov  2011 sbin
drwxr-xr-x    2 Alexis  staff    68B 21 jul  2010 selinux
drwxr-xr-x    3 Alexis  staff   102B 19 mai  2011 srv
drwxr-xr-x    2 Alexis  staff    68B  1 jan  2011 sys
drwxr-xr-x   35 Alexis  staff   1,2K 17 nov  2011 tmp
drwxr-xr-x   15 Alexis  staff   510B 17 nov  2011 usr
drwxr-xr-x   15 Alexis  staff   510B 17 nov  2011 var

Nous voyons l’arborescence du system de notre NAS LG N1T1. Maintenant nous allons voir comment recréer un fichier .bin à partir de cette arborescence.

Chiffrement et création du Firmware

Nous sommes toujours dans notre répertoire firmware_tree, nous supprimons les deux archives firmwarenew.tgz et firmware.tar.gz qui sont dans le répertoire parent.

$ rm ../firmwarenew.tgz ../firmware.tar.gz

Maintenant nous allons recréer l’archive firmware.tar.gz à partir du contenu du dossier firmware_tree, nous sommes d’ailleurs toujours dans ce répertoire.

# On crée notre archive qui sera stockée dans le répertoire parent de firmware_tree
tar cpzf ../firmware.tar.gz ./*
# On retourne dans le répertoire parent
cd ..
# On supprime le dossier firmware_tree
rm -rf firmware_tree/

Nous sommes maintenant dans le répertoire qui contient le fichier firmware.tar.gz, voici ce que vous devriez avoir comme fichier.

$ ll
total 534448
-rw-r--r--  1 Alexis  staff     9B 17 nov  2011 ENCRYPTION
-rw-r--r--  1 Alexis  staff     1B 17 nov  2011 INCLUDE
-rw-r--r--  1 Alexis  staff    33B 17 nov  2011 MD5SUM
-rw-r--r--  1 Alexis  staff     4B 17 nov  2011 MODEL
-rw-r--r--  1 Alexis  staff     5B 17 nov  2011 PVERSION
-rw-r--r--  1 Alexis  staff    10B 17 nov  2011 SIZE
-rw-r--r--  1 Alexis  staff     9B 17 nov  2011 TYPE
-rw-r--r--  1 Alexis  staff     6B 17 nov  2011 VERSION
-rw-r--r--  1 Alexis  staff   261M  8 aoû 22:58 firmware.tar.gz
-rwxr-xr-x@ 1 Alexis  staff   1,1K  8 aoû 17:41 postinst.sh
-rwxr-xr-x  1 Alexis  staff   268B 17 nov  2011 preinst.sh

Nous calculons la somme MD5 du fichier firmware.tar.gz puis nous allons l’enregistrer dans le fichier MD5SUM.

$ md5 firmware.tar.gz 
MD5 (firmware.tar.gz) = 25fd951b8b03af78a7c3ede0b1ada690
# On enregistre la somme MD5 dans le fichier MD5SUM
$ md5 -q firmware.tar.gz > MD5SUM

Nous allons chiffrer notre archive firmware.tar.gz en utilisant la nouvelle somme MD5, la passphrase est toujours composée du contenu du fichier MD5SUM, d’un ‘.’ et du contenu du fichier MODEL.

$ gpg --passphrase=25fd951b8b03af78a7c3ede0b1ada690.nt1 -c -r -e firmware.tar.gz 
gpg: AVERTISSEMENT: des destinataires (-r) ont été donnés alors que le
chiffrement ne se fait pas par clé publique

Voici ce que devriez avoir dans votre répertoire courant.

$ ll
total 1066480
-rw-r--r--  1 Alexis  staff     9B 17 nov  2011 ENCRYPTION
-rw-r--r--  1 Alexis  staff     1B 17 nov  2011 INCLUDE
-rw-r--r--  1 Alexis  staff    33B  9 aoû 09:59 MD5SUM
-rw-r--r--  1 Alexis  staff     4B 17 nov  2011 MODEL
-rw-r--r--  1 Alexis  staff     5B 17 nov  2011 PVERSION
-rw-r--r--  1 Alexis  staff    10B 17 nov  2011 SIZE
-rw-r--r--  1 Alexis  staff     9B 17 nov  2011 TYPE
-rw-r--r--  1 Alexis  staff     6B 17 nov  2011 VERSION
-rw-r--r--  1 Alexis  staff   261M  9 aoû 09:56 firmware.tar.gz
-rw-r--r--  1 Alexis  staff   260M  9 aoû 10:00 firmware.tar.gz.gpg
-rwxr-xr-x  1 Alexis  staff   705B 17 nov  2011 postinst.sh
-rwxr-xr-x  1 Alexis  staff   268B 17 nov  2011 preinst.sh

Nous devons maintenant supprimer le fichier firmware.tar.gz et renommer le fichier firmware.tar.gz.gpg en firmware.tar.gz.

$ rm firmware.tar.gz
$ mv firmware.tar.gz.gpg firmware.tar.gz

Dans votre répertoire, vous devriez avoir les fichiers suivants.

$ ll
total 532112
-rw-r--r--  1 Alexis  staff     9B 17 nov  2011 ENCRYPTION
-rw-r--r--  1 Alexis  staff     1B 17 nov  2011 INCLUDE
-rw-r--r--  1 Alexis  staff    33B  9 aoû 09:59 MD5SUM
-rw-r--r--  1 Alexis  staff     4B 17 nov  2011 MODEL
-rw-r--r--  1 Alexis  staff     5B 17 nov  2011 PVERSION
-rw-r--r--  1 Alexis  staff    10B 17 nov  2011 SIZE
-rw-r--r--  1 Alexis  staff     9B 17 nov  2011 TYPE
-rw-r--r--  1 Alexis  staff     6B 17 nov  2011 VERSION
-rw-r--r--  1 Alexis  staff   260M  9 aoû 10:00 firmware.tar.gz
-rwxr-xr-x  1 Alexis  staff   705B 17 nov  2011 postinst.sh
-rwxr-xr-x  1 Alexis  staff   268B 17 nov  2011 preinst.sh

Enfin, nous allons recréer un .bin que nous allons pouvoir envoyer sur notre NAS. Le fichier firmware.bin contient tous les fichiers de votre répertoire courant.

$ tar cpf ../firmware.bin ./*

Installation du nouveau Firmware

C’est le moment de vérité, nous allons tenter d’installer le fichier firmware.bin que nous venons de créer sur notre NAS LG N1T1.

Comme vous pouvez le voir, notre firmware passe tous les tests. C’est parce que nous avons mis à jour le fichier MD5SUM avec la md5 de notre nouvelle archive.

La prochaine étape est de personnaliser le contenu de notre fichier firmware.tar.gz.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.