Libewf
Montage de fichiers avec ewfmount
La commande la plus intéressante est ewfmount. Elle permet de monter un fichier EWF sur l'ordinateur. Ewfmount se limite à créer, à l'aide de FUSE et juste en-dessous du point de montage, un fichier virtuel nommé ewf1 donnant accès au contenu du fichier EWF. Il est ensuite possible d'utiliser divers outils d'analyse sur l'image ainsi accessible.
Le démontage du fichier virtuel ewf1 se fait indifféremment avec umount ou fusermount -u.
Dans l'exemple suivant, nous utilisons l'image d'une clé USB de 8 Gio formattée en ext2, et nous nous servons des outils de Sleuthkit.
$ ewfmount USB.E01 /mnt/ici
$ ls -l /mnt/ici
-r--r--r-- 1 root root 8242855936 Jan 6 11:30 ewf1
$ fsstat /mnt/ici/ewf1
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext2
Volume Name:
Volume ID: 770b5c3e1382fe9fb44d85fd5aefb668
Last Written at: 2018-01-06 00:59:18 (CET)
Last Checked at: 2018-01-06 00:43:51 (CET)
Last Mounted at: empty
Unmounted properly
Source OS: Linux
Dynamic Structure
Compat Features: Ext Attributes, Resize Inode, Dir Index
InCompat Features: Filetype,
Read Only Compat Features: Sparse Super, Large File
$ fls /mnt/ici/ewf1
d/d 11: lost+found
r/r 12: Tokyo-01.jpg
r/r 13: Tokyo-02.jpg
r/r 14: Tokyo-03.jpg
r/r 15: Tokyo-04.jpg
r/r 16: Tokyo-05.jpg
r/r 17: Tokyo-06.jpg
r/r 18: Tokyo-07.jpg
r/r 19: Tokyo-08.jpg
r/r 20: Tokyo-09.jpg
r/r 21: Tokyo-10.jpg
r/r 22: Tokyo-11.jpg
r/r 23: Tokyo-12.jpg
Le montage fait par ewfmount peut ne pas suffire. Il est souvent utile de monter les différentes partitions du disque afin d'en examiner le contenu avec des commandes et outils classiques. Cela suppose d'utiliser le fichier virtuel ewf1 comme source pour mount. Ceci nécessite que l'utilisateur root puisse accéder au fichier ewf1, ce qui est normalement interdit. Il faut donc
- ajouter, dans le fichier /etc/fuse.conf (ou tout autre chemin, selon votre installation) la directive user_allow_other
- transmettre à FUSE, via ewfmount, l'option allow_other
$ ewfmount -X allow_other Disque-1To.E01 /mnt/disque/EWF
ewfmount 20170703
$ ls -l /mnt/disque/EWF
-r--r--r-- 1 root root 1000204886016 Jan 6 21:31 ewf1
Il est alors possible de monter l'une des partitions du disque
$ cd /mnt/disque
$ mmls EWF/ewf1
GUID Partition Table (EFI)
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
000: Meta 0000000000 0000000000 0000000001 Safety Table
001: ------- 0000000000 0000002047 0000002048 Unallocated
002: Meta 0000000001 0000000001 0000000001 GPT Header
003: Meta 0000000002 0000000033 0000000032 Partition Table
004: 000 0000002048 0000534527 0000532480 EFI system partition
005: 001 0000534528 0000796671 0000262144 Microsoft reserved partition
006: 002 0000796672 1920139263 1919342592 Basic data partition
007: 003 1920139264 1921662975 0001523712 Basic data partition
008: 004 1921662976 1953517567 0031854592 Basic data partition
009: ------- 1953517568 1953525167 0000007600 Unallocated
$ mount -o ro,loop,offset=$((512*796672)) EWF/ewf1 p3
$ ls p3
BOOTNXT pagefile.sys SWSetup
Documents and Settings PerfLogs SYSTEM.SAV
$GetCurrent ProgramData System Volume Information
hiberfil.sys Program Files Users
hp Program Files (x86) Windows
inetpub Recovery Windows10Upgrade
Intel $Recycle.Bin $WINDOWS.~BT
KVRT_Data swapfile.sys
Il reste un dernier point important à signaler. Si vous voulez monter plusieurs partitions du même disque, cela ne se passera probablement pas aussi bien que vous le souhaiteriez :
$ mount -o ro,loop,offset=$((512*1920139264)) EWF/ewf1 p4
mount: p4: overlapping loop device exists for /mnt/disque/EWF/ewf1.
Cela vient de ce que, sans autre information, mount considère que la partition que l'on monte va jusqu'à la fin du fichier source. Il faut utiliser l'option sizelimit en plus de offset pour monter les partitions :
$ umount p3
$ mount -o ro,loop,offset=$((512*796672)),sizelimit=$((512*1919342592)) EWF/ewf1 p3
$ mount -o ro,loop,offset=$((512*1920139264)),sizelimit=$((512*1523712)) EWF/ewf1 p4
- << Précédent
- Suivant