browserforensics
Retour à tous les articles

Emplacements des fichiers d'historique de Firefox

2026-05-19 · 2 min

Les profils Firefox résident dans un répertoire au nom aléatoire sous Profiles/, généralement <random>.default-release sur une installation récente. Sous Windows, le cache est réparti entre Roaming et Local ; un détail subtil qui piège ceux qui copient seulement Roaming et s'étonnent que le pivot sur le cache ne rende rien.

Racine de profil par système d'exploitation

Windows

C:\Users\<user>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>
C:\Users\<user>\AppData\Local\Mozilla\Firefox\Profiles\<profile>\cache2

macOS

/Users/<user>/Library/Application Support/Firefox/Profiles/<profile>
/Users/<user>/Library/Caches/Firefox/Profiles/<profile>/cache2

Linux

/home/<user>/.mozilla/firefox/<profile>
/home/<user>/.cache/mozilla/firefox/<profile>/cache2

profiles.ini au niveau parent associe chaque nom de profil à son répertoire. Utile quand un utilisateur a plusieurs profils et qu'il faut identifier celui par défaut.

Rôle de chaque fichier

FichierFormatContenu
places.sqliteSQLitemoz_places, moz_historyvisits, moz_bookmarks, moz_annos (téléchargements)
cookies.sqliteSQLitemoz_cookies (valeurs en clair)
formhistory.sqliteSQLitemoz_formhistory
favicons.sqliteSQLitemoz_icons, moz_pages_w_icons
webappsstore.sqliteSQLiteLocalStorage (origine → clé → valeur)
logins.json + key4.dbJSON + NSSIdentifiants enregistrés (chiffrés avec la clé de profil)
sessionstore.jsonlz4mozLz4 + JSONOnglets actuellement ouverts
sessionstore-backups/recovery.jsonlz4mozLz4 + JSONSauvegarde la plus récente
sessionstore-backups/previous.jsonlz4mozLz4 + JSONOnglets de la session précédente
prefs.js, user.jsTexteConfiguration

moz_annos est facile à oublier ; elle contient les métadonnées de téléchargement que Firefox ne range plus dans une downloads.sqlite séparée. Filtrez sur anno_attribute_id joint à moz_anno_attributes pour obtenir le nom réel de l'attribut.

Horodatages et WAL

Firefox utilise PRTime, soit des microsecondes depuis l'époque Unix, pour la plupart des colonnes. Voir formats d'horodatage des navigateurs pour les exceptions par colonne dans moz_cookies.

places.sqlite fonctionne en mode WAL. Récupérez toujours places.sqlite-wal et places.sqlite-shm ensemble. L'article sur la récupération du WAL couvre le checkpoint.

Notes d'acquisition

  • Les fichiers de session .jsonlz4 utilisent la variante LZ4 de Mozilla (magie mozLz40), pas du LZ4 standard. Décompressez avec un parseur qui connaît l'en-tête, ou avec lz4json.
  • key4.db est nécessaire pour déchiffrer logins.json. Sans le mot de passe maître de l'utilisateur (souvent vide), des outils comme firefox_decrypt récupèrent les identifiants hors ligne.
  • Cache2 est un cache adressé par contenu. Le nom de chaque fichier est un SHA-1 de l'URL ; les métadonnées sont en fin de fichier. Utile lorsqu'il faut prouver qu'une page a été rendue, et pas seulement visitée.

Pour aller plus loin