Aller au contenu

Activité utilisateur

Notepad TabState (Windows 11)

Fiche Notepad TabState : fichiers .bin des onglets du Bloc-notes Windows 11, texte jamais enregistré, chemins des fichiers, hashs, WindowState et analyse.

Emplacement
C:\Users\<user>\AppData\Local\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\TabState\*.bin
Prouve
Le texte saisi ou collé dans le Bloc-notes, y compris jamais enregistré, et les fichiers qui étaient ouverts
Horodatages
Les onglets liés à un fichier contiennent sa date de dernière écriture (FILETIME UTC, encodage de longueur variable selon les travaux de la communauté) ; horodatages NTFS des .bin en UTC
Rétention
Jusqu'à la fermeture de l'onglet ou la désactivation de la restauration de session ; les fichiers d'onglets fermés sont supprimés mais récupérables par carving ou dans les clichés instantanés
Accès
Utilisateur ou administrateur ; fichiers ordinaires du profil, à collecter si possible Bloc-notes fermé
Type
Fichier / système de fichiers
Windows
11
Cible KAPE
Pas de cible dédiée
Velociraptor
Pas de cible dédiée

Présentation

La version Store du Bloc-notes (Notepad) livrée avec Windows 11 a ajouté les onglets puis, en 2023, la restauration de session : à la fermeture, les onglets ouverts (enregistrés ou non) réapparaissent au lancement suivant. Pour cela, l'application écrit en continu chaque onglet dans un fichier binaire sous TabState. Pour l'enquêteur, c'est une preuve inhabituelle : du texte saisi ou collé sans jamais être enregistré se trouve sur le disque, avec le chemin des fichiers ouverts.

La fonction est apparue dans des versions de l'application diffusées via le Store de Windows 11 au cours de 2023 (des numéros de la série 11.23xx sont souvent cités). Le notepad.exe classique de Windows 10 ne l'a pas.

Emplacement

ÉlémentChemin (sous %LOCALAPPDATA%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\)
Fichiers d'ongletTabState\<GUID>.bin
État auxiliaire de l'ongletTabState\<GUID>.0.bin, <GUID>.1.bin (paramètres et modifications en attente, selon les travaux de la communauté)
Disposition des fenêtresWindowState\*.bin (ordre des onglets, onglet actif, géométrie)
Paramètres de l'application..\Settings\settings.dat (racine du package, ruche au format registre)

Ce que l'artefact prouve

  • Prouve le contenu de chaque onglet ouvert à la dernière écriture, y compris les onglets « Sans titre » jamais enregistrés : identifiants collés, brouillons de messages, listes de commandes, notes de rançon en préparation.
  • Prouve qu'un fichier était ouvert dans le Bloc-notes (chemin complet) et, grâce au hash et à l'horodatage intégrés, quelle version de ce fichier a été chargée.
  • Montre les modifications non enregistrées faites sur un fichier enregistré, qui peuvent différer du fichier sur disque.
  • Il ne donne pas de chronologie de frappe : aucune heure par frappe, seulement des horodatages de fichier.
  • Il ne prouve pas que l'utilisateur est l'auteur du texte, qui peut avoir été collé d'ailleurs. Corrélez avec l'historique du presse-papiers.

Champs clés

Le format n'est pas documenté et a été rétro-conçu par la communauté ; l'ordre et le type des champs peuvent changer d'une version du Bloc-notes à l'autre.

ChampSignification
Signature NPSignature du fichier
Indicateur enregistré / non enregistréL'onglet est-il associé à un fichier sur disque
Chemin du fichierChemin complet du fichier enregistré (UTF-16LE, préfixé par sa longueur)
Taille, encodage, type de fin de lignePropriétés du fichier enregistré
Date de dernière écritureHorodatage du fichier au moment du chargement
SHA-256Hash du contenu du fichier chargé
Début / fin de sélectionPosition du curseur ou de la sélection
ContenuTexte de l'onglet (UTF-16LE)
Blocs non enregistrésOpérations d'insertion/suppression ajoutées, avec sommes de contrôle CRC32

Les longueurs et plusieurs champs numériques sont stockés en entiers non signés LEB128 de longueur variable : c'est pourquoi une simple recherche de chaînes ne donne que des résultats partiels.

Horodatages

HorodatageFormatRemarques
Date de dernière écriture intégréeFILETIME, UTC (encodée en LEB128 selon les publications de la communauté)Décrit le fichier sur disque, pas la saisie
Création $SI du .binNTFS, UTCApproximativement l'ouverture de l'onglet
Modification $SI du .binNTFS, UTCDernière écriture de l'onglet par le Bloc-notes, proche de la dernière modification
Fichiers WindowStateNTFS, UTCDernier changement de la disposition des onglets

Rétention et effacement

  • Les fichiers d'onglet survivent aux redémarrages jusqu'à la fermeture de l'onglet. Fermer un onglet (sans enregistrer) supprime ses fichiers .bin.
  • L'utilisateur peut désactiver la restauration dans les paramètres du Bloc-notes (Au démarrage du Bloc-notes : ouvrir une nouvelle session) ; les fichiers d'onglet ne sont alors plus conservés après la fermeture (le comportement exact peut varier selon la version).
  • Les fichiers supprimés peuvent être récupérés dans les clichés instantanés ou par carving de l'espace non alloué à partir de la signature NP et du texte UTF-16.
  • Désinstaller ou réinitialiser l'application Bloc-notes efface tout le dossier LocalState.

Collecte

$np = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState"
robocopy "$np" E:\case\notepad /E /COPY:DAT /DCOPY:T
Get-AppxPackage Microsoft.WindowsNotepad | Select-Object Name, Version

Notez la version du package Bloc-notes : elle indique quelle variante du format attendre. Pour tous les profils, collectez C:\Users\*\AppData\Local\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\ avec votre outil de triage.

Outils d'analyse

  • Outils de la communauté : plusieurs analyseurs TabState open source en Python, Rust et C# existent sur GitHub. Vérifiez quelles versions du Bloc-notes chacun prend en charge avant de vous fier à sa sortie.
  • 010 Editor / éditeur hexadécimal : pour un premier examen, le texte UTF-16LE est lisible directement ; les modèles issus des travaux de la communauté aident à décoder les champs.
  • Strings : strings -el sur les fichiers .bin fait vite ressortir le texte non enregistré.
  • Plaso / suites commerciales : prise en charge récente et inégale ; vérifiez par une analyse manuelle.

Conseils d'investigation

  • Commencez toujours par les onglets non enregistrés : les utilisateurs y collent mots de passe, clés d'API, listes d'IP et brouillons de discussion sans jamais les enregistrer.
  • Comparez le SHA-256 intégré avec le fichier actuel : une différence signifie que le fichier a changé après son ouverture dans le Bloc-notes.
  • Dans les affaires de rançongiciel, les attaquants qui préparent notes ou listes de commandes dans le Bloc-notes sur un hôte compromis les laissent ici.
  • Corrélez les chemins avec les jump lists et RecentDocs pour dater l'ouverture des fichiers.
  • Le même principe vaut pour d'autres applications avec restauration de session ; comparez avec Sticky Notes.

Artefacts liés

Termes du glossaire

Guides

Tous les artefacts sur une page : aide-mémoire