Exécution
Assistant Compatibilité des programmes (PCA)
Fiche PCA : fichiers PcaAppLaunchDic.txt et PcaGeneralDb de Windows 11, clé AppCompatFlags Store, champs et horodatages UTC des lancements.
- Emplacement
- C:\Windows\appcompat\pca\PcaAppLaunchDic.txt
- Prouve
- Un programme a été lancé depuis l'interface graphique, et sa dernière exécution (Windows 11 22H2+)
- Horodatages
- Dernier lancement GUI par chemin (PcaAppLaunchDic.txt) et heures des enregistrements PcaGeneralDb, texte UTC ; LastWrite de la clé Store en FILETIME, UTC
- Rétention
- Une ligne par chemin, mise à jour sur place ; PcaGeneralDb0/1 alternent vers 2 Mo (2 à 4 Mo d'historique) ; texte brut, facile à modifier
- Accès
- Administrateur pour C:\Windows\appcompat\pca (copie simple avec robocopy) ; clé Store dans NTUSER.DAT, verrouillé pendant la session
- Preuve de
- Exécution
- Type
- Fichier / système de fichiers
- Windows
- Vista / 78 / 8.11011
- Cible KAPE
- AppCompatPCA
- Velociraptor
- Windows.Triage.Targets:AppCompatPCA
Outils
Comparer tous les outilsPrésentation
L'Assistant Compatibilité des programmes (Program Compatibility Assistant, service PcaSvc) observe le démarrage et l'arrêt des programmes afin de proposer des correctifs de compatibilité. Il laisse deux familles de traces :
- Depuis Windows 11 version 22H2, PcaSvc écrit des journaux texte dans
C:\Windows\appcompat\pca\, dont un dictionnaire des exécutables lancés avec leur dernière exécution en UTC. - Sur les versions antérieures (et encore aujourd'hui), il enregistre les exécutables examinés sous la clé de registre
AppCompatFlags\Compatibility Assistantde l'utilisateur.
Les fichiers de Windows 11 sont l'un des rares artefacts d'exécution simples et lisibles sur un Windows récent.
Emplacement
| Version de Windows | Emplacement | Contenu |
|---|---|---|
| 11 22H2 et ultérieures | C:\Windows\appcompat\pca\PcaAppLaunchDic.txt | `chemin |
| 11 22H2 et ultérieures | C:\Windows\appcompat\pca\PcaGeneralDb0.txt, PcaGeneralDb1.txt | Enregistrements d'événements (erreurs, arrêts anormaux), UTF-16LE |
| 8 / 10 / 11 | NTUSER.DAT\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store | Une valeur par chemin d'exécutable |
| 7 | NTUSER.DAT\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted | Une valeur par chemin d'exécutable |
| Toutes | ...\AppCompatFlags\Layers (NTUSER.DAT et SOFTWARE) | Réglages de mode de compatibilité par exécutable (par exemple RUNASADMIN) |
Ce que l'artefact prouve
PcaAppLaunchDic.txt: un exécutable situé à ce chemin a été lancé, et sa dernière exécution (UTC).- Seuls les lancements passant par l'interface graphique sont enregistrés. Les travaux de Sygnia ont montré que les programmes démarrés en ligne de commande, par une tâche planifiée ou à distance avec PsExec ne sont pas enregistrés, alors que les lancements dans une session RDP le sont.
PcaGeneralDb*.txt: arrêts anormaux, échecs d'installation et pilotes bloqués, avec les métadonnées de produit et d'éditeur ; un implant qui plante ou un installeur en échec peut y apparaître.Compatibility Assistant\Store: l'exécutable a été examiné par PCA pour cet utilisateur ; lisez-le comme une présence attribuée à un compte, et corroborez l'exécution.
Champs clés
PcaAppLaunchDic.txt : <chemin complet>|<AAAA-MM-JJ HH:MM:SS.fff>
PcaGeneralDb0.txt / PcaGeneralDb1.txt (séparateur |) :
| Champ | Signification |
|---|---|
| Horodatage | Heure de l'événement, UTC |
| Type d'enregistrement | 0 échec d'installeur, 1 pilote bloqué, 2 arrêt anormal du processus, 3 appel de résolution PCA, 4 inconnu |
| Chemin | Chemin de l'exécutable (les noms d'utilisateur sont en partie masqués par Windows en %USERNAME% ou en caractères x) |
| Nom du produit, éditeur, version | Issus des informations de version PE |
| Program ID | Identifiant utilisé aussi dans Amcache |
| Code de sortie / message | Détail de l'événement |
Clé Store du registre : nom de valeur = chemin de l'exécutable ; données = informations de compatibilité binaires (format non documenté publiquement en totalité).
Horodatages
| Horodatage | Positionné quand | Format | Pièges |
|---|---|---|---|
Dernière exécution (PcaAppLaunchDic.txt) | À chaque lancement graphique de l'exécutable | Texte, UTC | Seul le dernier lancement est conservé par chemin |
Heure d'enregistrement (PcaGeneralDb*.txt) | Survenue de l'événement PCA | Texte, UTC | Décrit des erreurs et des arrêts, pas chaque lancement |
LastWrite de la clé Store | Ajout ou mise à jour d'une valeur | FILETIME, UTC | Commun à toutes les valeurs de la clé |
Rétention et effacement
PcaAppLaunchDic.txtconserve une ligne par chemin d'exécutable, mise à jour sur place.PcaGeneralDb0.txtest le journal actif jusqu'à environ 2 Mo, puisPcaGeneralDb1.txtprend le relais : on dispose ainsi de deux à quatre mégaoctets d'historique.- Ce sont de simples fichiers texte, faciles à modifier ou supprimer pour un administrateur ; recoupez avec le journal USN pour repérer une suppression.
Collecte
- Cible KAPE :
AppCompatPCA(tout le dossierappcompat\pca) ; ajoutezRegistryHivesUserpour les clés de registre. - Velociraptor (
Windows.Triage.Targets) :AppCompatPCAetRegistryHivesUser. - Commandes natives :
robocopy C:\Windows\appcompat\pca E:\case\pca /COPY:DAT
type C:\Windows\appcompat\pca\PcaAppLaunchDic.txt
Outils d'analyse
- N'importe quel éditeur de texte, ou un import dans Timeline Explorer / un tableur avec
|comme séparateur (ouvrez les fichiersPcaGeneralDben UTF-16). - Registry Explorer ou RegRipper (plugin
appcompatflags) pour les clésCompatibility AssistantetLayers.
Conseils d'investigation
- Filtrez
PcaAppLaunchDic.txtsur les chemins accessibles en écriture (\Downloads\,\AppData\,\Users\Public\) et les lettres de lecteurs amovibles. - Comme seuls les lancements graphiques y figurent, un outil présent dans le Prefetch mais absent de PCA a probablement été lancé par un script, un service ou une session distante.
- Utilisez le type 2 (arrêt anormal) de
PcaGeneralDbpour repérer un malware qui plante ou un outil tué par une solution de sécurité. - Sous Windows 10 et antérieurs, rabattez-vous sur la clé
Storeavec BAM/DAM et UserAssist pour l'exécution au niveau utilisateur. - Une valeur
LayersimposantRUNASADMINà un binaire inhabituel mérite une explication.
Artefacts liés
- Amcache.hveFiche Amcache.hve : clés d'inventaire des fichiers et programmes, SHA-1, métadonnées PE, horodatages, et pourquoi une entrée ne prouve pas l'exécution.
- BAM / DAM (Background Activity Moderator)Fiche BAM et DAM : clés de la ruche SYSTEM selon la version de Windows 10, SID par utilisateur, dernière exécution en FILETIME, rétention de sept jours.
- UserAssistFiche UserAssist : clés GUID de NTUSER.DAT, noms en ROT13, nombre d'exécutions, temps au premier plan et dernière exécution des programmes lancés.
- Fichiers Prefetch (.pf)Fiche Prefetch Windows : emplacement des .pf par version, nombre d'exécutions, huit dernières dates, fichiers référencés, rétention et analyse.
- ShimCache (AppCompatCache)Fiche ShimCache (AppCompatCache) : emplacement dans SYSTEM, nombre d'entrées par version, ordre, sens de l'horodatage et limites comme preuve d'exécution.
Termes du glossaire
- Preuve d'exécutionLes artefacts qui montrent qu'un programme s'est réellement exécuté sous Windows, et pas seulement qu'il était présent sur le disque.
- 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.
- NTUSER.DATLa ruche du Registre propre à chaque utilisateur, stockée dans son profil et chargée comme HKEY_CURRENT_USER, riche en traces d'activité.