Dónde almacena Windows los archivos Jump List (Win 7, 10, 11)
TL;DR — Las Jump Lists residen en dos directorios por usuario dentro del
perfil Roaming: %AppData%\Microsoft\Windows\Recent\AutomaticDestinations\ y
%AppData%\Microsoft\Windows\Recent\CustomDestinations\. Estas rutas son
idénticas en Windows 7, 8, 10 y 11.
Ubicación de AutomaticDestinations
Archivos escritos por el propio shell cuando un usuario abre un documento:
%AppData%\Microsoft\Windows\Recent\AutomaticDestinations\
Resuelto, esto es
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\.
Cada archivo se llama <AppID>.automaticDestinations-ms, por ejemplo
<AppID>.automaticDestinations-ms donde <AppID> es una cadena hexadecimal
de 16 caracteres. El archivo en sí es un OLE Compound File cuyos flujos
numerados son estructuras LNK, ordenados por un flujo DestList.
Ubicación de CustomDestinations
Archivos escritos por la aplicación a través de la API ICustomDestinationList
para sus elementos anclados y categorías personalizadas ("Tasks", "Recent",
etc.):
%AppData%\Microsoft\Windows\Recent\CustomDestinations\
Misma convención de nombres: <AppID>.customDestinations-ms. El formato es
una secuencia plana de estructuras LNK precedida por una pequeña cabecera —
no es un OLE Compound File.
Por usuario vs por máquina
Ambos directorios son por usuario y viajan con el perfil (están bajo
AppData\Roaming, no Local). No existe un almacén de Jump Lists a nivel de
máquina. En un host activo puedes resolver el usuario actual con
echo %AppData%; en una imagen montada, recorre \Users\ y mapea cada
carpeta de perfil a su SID mediante
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID> si
necesitas vincular la actividad a una cuenta.
En una imagen forense
Monta la imagen y extrae todo el árbol Recent por usuario:
\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\
\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\
La carpeta padre Recent\ también contiene accesos directos .lnk clásicos
— útiles como corroboración pero un artefacto aparte. Las dos subcarpetas
*Destinations han existido sin cambios desde Windows 7, así que el mismo
script de recolección funciona en Windows 7, 8.1, 10 y 11. En un sistema en
ejecución, espera que explorer.exe mantenga handles abiertos; recopila
desde una Volume Shadow Copy
(\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\…) o trabaja desde una
imagen.
Cómo es un AppID
El prefijo del nombre de archivo es una cadena hexadecimal en minúsculas de
16 caracteres — por ejemplo 1b4dd67f29cb1962. Es un hash CRC64 truncado
calculado sobre la ruta del ejecutable de la aplicación (y, en algunos casos,
datos identificativos adicionales), de modo que el mismo binario en la misma
ruta produce el mismo AppID en cualquier máquina. Esa estabilidad es lo que
hace útiles las listas publicadas de AppIDs: Quick Access y otros elementos
anclados al shell usan AppIDs estables y bien conocidos que los analistas
pueden reconocer a primera vista. Mueve o renombra el ejecutable y el AppID
cambia, dejando el archivo Jump List antiguo huérfano en la carpeta.
Para el diseño de bytes en disco de estos archivos, consulta el desglose del formato de archivo.