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
Outils
Comparer tous les outils- 010 EditorGUI · commercial
- Community TabState parsers
- KAPECLI
- VelociraptorPlateforme · open source
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ément | Chemin (sous %LOCALAPPDATA%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\) |
|---|---|
| Fichiers d'onglet | TabState\<GUID>.bin |
| État auxiliaire de l'onglet | TabState\<GUID>.0.bin, <GUID>.1.bin (paramètres et modifications en attente, selon les travaux de la communauté) |
| Disposition des fenêtres | WindowState\*.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.
| Champ | Signification |
|---|---|
Signature NP | Signature du fichier |
| Indicateur enregistré / non enregistré | L'onglet est-il associé à un fichier sur disque |
| Chemin du fichier | Chemin complet du fichier enregistré (UTF-16LE, préfixé par sa longueur) |
| Taille, encodage, type de fin de ligne | Propriétés du fichier enregistré |
| Date de dernière écriture | Horodatage du fichier au moment du chargement |
| SHA-256 | Hash du contenu du fichier chargé |
| Début / fin de sélection | Position du curseur ou de la sélection |
| Contenu | Texte de l'onglet (UTF-16LE) |
| Blocs non enregistrés | Opé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
| Horodatage | Format | Remarques |
|---|---|---|
| Date de dernière écriture intégrée | FILETIME, UTC (encodée en LEB128 selon les publications de la communauté) | Décrit le fichier sur disque, pas la saisie |
Création $SI du .bin | NTFS, UTC | Approximativement l'ouverture de l'onglet |
Modification $SI du .bin | NTFS, UTC | Dernière écriture de l'onglet par le Bloc-notes, proche de la dernière modification |
Fichiers WindowState | NTFS, UTC | Dernier 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
NPet 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 -elsur les fichiers.binfait 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
- Sticky Notes (plum.sqlite et StickyNotes.snt)Fiche Sticky Notes : table Note de plum.sqlite et horodatages en ticks .NET sous Windows 10/11, ancien StickyNotes.snt, récupération via le WAL, collecte.
- Historique du presse-papiersFiche presse-papiers : ce que Windows 10/11 garde en mémoire, éléments épinglés sur disque, texte du presse-papiers cloud dans ActivitiesCache.db et registre.
- Jump ListsFiche Jump Lists : AutomaticDestinations et CustomDestinations, AppID, entrées DestList avec dernier accès, nombre d'accès, épinglage, et JLECmd.
- RecentDocsFiche RecentDocs : clé de NTUSER.DAT et sous-clés par extension, ordre MRUListEx, sens du LastWrite et rapprochement des entrées avec les fichiers LNK.
- Clichés instantanés de volume (VSS)Fiche clichés instantanés VSS : fichiers de stockage dans System Volume Information, copie sur écriture, suppression par rançongiciel, montage et analyse.
- Windows Timeline (ActivitiesCache.db)Fiche Windows Timeline : ActivitiesCache.db et WAL, tables Activity, valeurs ActivityType, durée au premier plan, presse-papiers, expiration à 30 jours.
Termes du glossaire
- FILETIMELe format d'horodatage Windows sur 64 bits qui compte les intervalles de 100 nanosecondes depuis le 1er janvier 1601 UTC.
- Carving de fichiersLa récupération de fichiers à partir de données brutes grâce à des signatures de contenu (en-têtes, pieds), sans métadonnées du système de fichiers.
- UTC et heure locale dans les artefacts WindowsPourquoi certains artefacts Windows enregistrent l'UTC et d'autres l'heure locale, et comment la clé TimeZoneInformation aide à normaliser une chronologie.
- Espace non allouéLes clusters qu'un système de fichiers considère comme libres ; ils contiennent souvent encore des données de fichiers supprimés.