3 votos

¿Cómo leer y manipular ~/Library/Saved Application State/com.apple.finder.savedState/data.data

Debido a un error en MacOS, he identificado que este es el archivo que se está editando cuando hago un cambio específico en el buscador de MacOS.

"~/Library/Saved Application State/com.apple.finder.savedState/data.data"

En este momento está un poco desordenado cuando se abre con TextEditor.

Me gustaría poder leer este archivo y posiblemente escribir de nuevo en él más tarde.

Este archivo se modifica, por ejemplo, cuando hago CMD + I en una ventana del buscador y hago cambios en ordenar por tipo.

Esa información no se guarda en .DS_Store pero el Buscador la está guardando en este archivo data.data.

Me gustaría escribir mis propias cosas en ese archivo.

¿Es posible? ¿Qué herramienta? plutil no pudo leerlo. No es un archivo plist.

Otras aplicaciones están escribiendo archivos similares, así que creo que es posible:

introduce la descripción de la imagen aquí

Por favor, intenta mantenerte en la pregunta para que no entremos en diversas discusiones sobre por qué creo que necesito editarlo.

7voto

Willi Ballenthin Puntos 111

Estos recursos savedState son utilizados por macOS para soportar la "reanudación" de aplicaciones:

Una de las nuevas características en OS X Lion y OS X Mountain Lion es la habilidad de "Reanudar" para todas las aplicaciones para guardar su último estado, lo que significa que cuando vuelvas a abrir la aplicación o reinicies tu Mac, la aplicación se "reanudará" y se volverá a abrir mostrando todas las ventanas y datos que se estaban utilizando por última vez.

http://osxdaily.com/2011/07/17/delete-specific-application-saved-states-from-mac-os-x-10-7-lion-resume/

He utilizado estos recursos savedState para recuperar la actividad de línea de comandos de hackers mientras respondía a incidentes de seguridad informática.


Dentro de un directorio savedState, hay al menos dos archivos:

  • windows.plist, y
  • data.data

windows.plist contiene información del diseño de las ventanas y otros metadatos. data.data es un archivo que contiene registros encriptados cuyo texto plano incluye un blob serializado NSKeyedArchiver con estado específico de la aplicación. Puedes usar los campos NSDataKey de windows.plist como claves AES para descifrar los registros en data.data utilizando el modo CBC con IV | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |.

El diseño de un registro (encriptado) dentro de data.data es:

typedef struct SavedStateRecord {
    char     magic[4];          // "NSCR"
    char     version[4];        // "1000"
    uint32_t window_id;         // little endian
    uint32_t cipher_text_size;  // little endian
    uint8_t  cipher_text[cipher_text_size];
} SavedStateRecord;

Una vez que el registro se descifra, el diseño se ve algo como:

// little endian
typedef struct SavedStateRecordPlaintext {
    uint32_t unk1;             // a menudo 0x0
    uint32_t class_name_size;
    char     class_name[class_name_size];
    char     magic[4];         // "rchv"
    uint32_t size;

    // Esto es una estructura de datos serializada NSKeyedArchiver.
    // En práctica, un bplist con una interpretación específica.
    uint8_t  buf[size];
} SavedStateRecordPlaintext;

A partir de ahí, puedes extraer el bplist de la estructura NSKeyedArchiver y manipularlo. La interpretación del estado bplist es específica de la aplicación.

He escrito un analizador para soportar la informática forense que está disponible aquí: https://gist.github.com/williballenthin/994db929b1448fdf73baf91207129dec

CrowdStrike también tiene un analizador y recursos que se describen aquí: https://www.crowdstrike.com/blog/reconstructing-command-line-activity-on-macos/

1 votos

No olvides este sitio hermano de preguntas y respuestas: reverseengineering.stackexchange.com/questions/9426/…

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X