在 macOS、iOS、NeXTSTEP 与 GNUstep 等编程框架中,property list(属性列表)文件用于存储序列化对象。Apple 在操作系统中大量使用 plist 文件保存用户偏好、应用设置与配置数据。
属性列表(常简称 plist)通过字典、数组、字符串、数字、日期与二进制数据等类型,以结构化方式存储层次化数据,可视为一种轻量级的简单数据存储格式。
~/Library/Preferences/*.plist)、应用设置、启动守护进程配置(如 /Library/LaunchDaemons/*.plist),以及应用包内的 Info.plist(定义应用元数据)等场景中。
属性列表可用三种不同格式保存,各有适用场景:
XML 格式为人类可读的纯文本,便于手工编辑与版本管理。CyberChef 的 P-list Viewer 操作主要面向该格式。
二进制 plist 比 XML 更紧凑、解析更快,Apple 工具在生产环境中常将 plist 转为二进制。在 CyberChef 中可先使用 From Binary 操作转换,再用 P-list Viewer 查看。
较旧的遗留格式,语法类似 JSON 或 JavaScript 对象字面量。现代系统中已少见,但仍可能因向后兼容而被支持。
CyberChef 中的 P-list Viewer 会解析属性列表数据,并以易读的结构化形式展示。分析配置文件、应用偏好,或检视取证中导出的 plist 时尤为有用。
分析保存在 ~/Library/Preferences/ 中的用户偏好与设置,有助于理解应用配置或排查问题。
每个 macOS / iOS 应用都包含 Info.plist,用于声明能力、权限与元数据。安全分析或逆向时可用 P-list Viewer 检视这些文件。
系统启动守护进程与代理(Launch Daemon / Agent)常用 plist 配置。分析这些文件可发现持久化手段、计划任务与服务配置。
iOS 备份中含大量 plist,保存应用数据、设置与用户信息。取证或数据恢复时可用 P-list Viewer 解析。
二进制 plist 文件通常以魔数 bplist 开头。在 CyberChef 中可这样处理:
bplist00 或 bplist15 等判断格式plutil -convert xml1 file.plistplistlib 模块转换以下是与 P-list Viewer 搭配使用的 CyberChef 配方示例:
分析 plist 时应注意其可能包含:
对不可信来源的 plist 应采取适当管控;勿公开泄露敏感 plist 内容。