Analyser ActivitiesCache.db dans votre navigateur
Pas à pas : ouvrir ActivitiesCache.db et son -wal dans un visualiseur gratuit, filtrer applications, fichiers, focus et presse-papiers, exporter en CSV ou JSON.
En bref. Ouvrez le Windows Timeline Parser, déposez ActivitiesCache.db et ActivitiesCache.db-wal (ou tout le dossier du profil, ou un ZIP KAPE/Velociraptor), lisez les avertissements, puis filtrez par type : Ouverture (app / fichier) pour les fichiers, Utilisation (focus) pour le temps de focus, Presse-papiers pour le texte copié, Opérations en attente pour les suppressions. Ouvrez n'importe quelle ligne pour voir le JSON brut. Exportez en CSV ou JSON. Tout s'exécute localement en WebAssembly ; rien n'est envoyé.
Cet article est le compagnon pratique du guide complet de l'analyse forensique de Windows Timeline. Il suppose que vous avez déjà les fichiers ; sinon, commencez par où se trouve ActivitiesCache.db et comment l'acquérir.
Avant de commencer
| Il vous faut | Pourquoi |
|---|---|
Une copie d'ActivitiesCache.db | La base après checkpoint |
Le ActivitiesCache.db-wal correspondant | L'activité validée la plus récente (pourquoi) |
Le chemin Users\<name>\ conservé dans la collecte | Attribuer chaque base à un compte |
| Un navigateur de bureau récent | Le parseur tourne en WebAssembly dans un Web Worker |
Le parseur est en lecture seule par construction : il lit des octets, il n'embarque pas de moteur SQLite et ne possède aucun chemin de code qui écrit dans vos fichiers. Vous travaillez quand même sur des copies, parce que c'est une bonne pratique quel que soit l'outil.
Étape 1 : collecter la base avec son WAL
Prenez tout le dossier ConnectedDevicesPlatform de chaque utilisateur. Une cible KAPE WindowsTimeline ou une collecte Velociraptor le fait déjà (cible KapeFiles). Hachez ce que vous avez collecté.
Étape 2 : ouvrir l'outil et charger les fichiers
Rendez-vous sur la page d'accueil de l'outil. Vous pouvez :
- Déposer des fichiers :
ActivitiesCache.dbplusActivitiesCache.db-wal. - Déposer un dossier ou utiliser Choisir un dossier : l'outil trouve chaque
ActivitiesCache.dbet l'associe à son WAL. - Déposer un ZIP : les archives de triage sont ouvertes dans le navigateur, y compris les ZIP imbriqués ; les fichiers sans rapport sont comptés et ignorés.
- Essayer un exemple : une base synthétique issue d'une intrusion fictive, dont les dernières actions sont restées dans le WAL. Pratique pour prendre l'interface en main avant de toucher à des preuves.
Le compte est déduit de Users/<name>/ dans le chemin, ou du dossier L.<name> pour les comptes locaux.
Étape 3 : lire les avertissements et les compteurs
Ne sautez pas cette étape. Les avertissements vous disent si la chronologie est complète.
| Message | Signification | Que faire |
|---|---|---|
| Pas de fichier -wal pour cette base | L'activité récente manque probablement | Retournez à la collecte et trouvez le WAL |
| Le fichier -wal ne correspond pas à cette base | WAL d'un autre moment ou d'une autre base ; ignoré | Recollectez les deux fichiers ensemble |
| N trame(s) d'une transaction non validée ignorée(s) | Normal sur un système allumé | Rien ; notez-le |
| Commence par des zéros | Le fichier était verrouillé ou en cours d'écriture lors de la copie | Recollectez avec un outil en accès disque brut |
| Fichier WAL sans son ActivitiesCache.db | Collecte trop étroite | Collectez la base |
Les compteurs donnent la forme des données : Comptes, Activités, Uniquement dans le WAL, Presse-papiers, Suppressions, Signalées. Un grand nombre de lignes « uniquement dans le WAL » est normal pour une collecte à chaud ; zéro sur un système allumé est une raison de vérifier que le WAL a bien été collecté.
Étape 4 : filtrer selon la question
| Question | Filtre |
|---|---|
| Quels fichiers l'utilisateur a-t-il ouverts ? | Type Ouverture (app / fichier) |
| Dans quelle application a-t-il réellement travaillé, et combien de temps ? | Type Utilisation (focus), tri par la colonne Focus |
| Qu'a-t-il copié ? | Type Presse-papiers, puis Copier / coller pour les événements |
| A-t-il retiré des entrées de Timeline ? | Type Opérations en attente, cherchez Opération : suppression |
| Quelque chose touche-t-il une clé USB, un partage ou un dossier inhabituel ? | Signalées uniquement |
| Un fichier, un hôte ou une date précis | Le filtre texte (application, fichier, texte, presse-papiers et date) |
| Plusieurs utilisateurs ou machines | Le sélecteur de base (Toutes les bases par défaut) |
Les marqueurs sont des heuristiques, pas des verdicts : Presse-papiers, Uniquement dans le WAL, Modifiée dans le WAL, Suppression, Dossier modifiable par l'utilisateur (AppData, Downloads, Desktop, Public, ProgramData, Windows\Temp, Corbeille, PerfLogs), Autre lecteur (USB ?) pour une lettre de lecteur autre que C:, et Chemin réseau pour les chemins UNC. Leur rôle est de vous pointer les lignes qui méritent d'être lues.
Étape 5 : examiner une ligne
Ouvrez n'importe quelle ligne pour voir :
- L'application résolue (GUID de dossiers connus affichés en
%ProgramFiles%,%SystemRoot%\System32, ...) et son nom convivial. - Le fichier ou dossier décodé depuis
contentUri. - Le texte du presse-papiers, décodé depuis le Base64.
- Début, fin, durée de focus, dernière modification, expiration et, pour les opérations, la date de création de l'opération.
- Le fuseau horaire de l'utilisateur issu du payload.
- Le statut WAL : dans la base reportée, uniquement dans le WAL, ou modifiée dans le WAL.
- Le JSON brut du Payload et de l'AppId, mis en forme, pour tout ce que le tableau n'affiche pas.
La signification des champs est expliquée dans types d'activité et champs du payload d'ActivitiesCache.db.
Étape 6 : choisir le fuseau horaire et exporter
La bascule UTC / Local change l'affichage. Choisissez-en une et indiquez-la dans vos notes. Exports :
- CSV : une ligne par activité avec des colonnes de date en UTC, le type, l'application, le chemin du fichier, le texte du presse-papiers, le statut WAL, les marqueurs, le propriétaire et le fichier source. Les cellules qui commencent par un caractère de formule sont neutralisées pour que le fichier s'ouvre sans risque dans un tableur.
- JSON : tous les champs décodés (y compris
Group,TagetIsLocalOnly), plus des métadonnées par source : chemin, propriétaire, nombre de trames WAL, tables et avertissements du parseur.
Les exports ne contiennent que les lignes qui correspondent aux filtres actifs. Videz les filtres si vous voulez tout.
Ce que l'outil ne fait pas (encore)
- Il ne carve pas les enregistrements supprimés dans les pages libres ou les trames WAL périmées.
- Il charge chaque base entièrement en mémoire : les très grosses collectes sont limitées par le navigateur.
- Il a été construit sur le schéma documenté et sur des fichiers de test synthétiques ; validez les constats importants avec un second parseur comme WxTCmd. Voir comparatif des parseurs ActivitiesCache.db.