mac_apt更新:BTM文件处理详解
本文重点介绍了mac_apt中AUTOSTART插件的改进。
自 macOS 13 (Ventura) 起,登录项和后台任务通过.BTM文件进行管理和跟踪。该文件位于以下路径:
/private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v<xx>.btm
其中<xx>是版本号,目前在 macOS 15.2 上是 13。
通过系统设置中的“登录项与扩展”页面,终端用户可以查看到其中大部分(但非全部!)信息,如下图所示。 图 1 - 系统设置中的登录项与扩展
mac_apt的AUTOSTART插件原先已能处理BTM文件,但此次更新有了显著改进。此前,未解析BTM特有的参数,并且包含了开发者条目(这些并非自动启动项),导致数据难以阅读和解释,同时也遗漏了一些关键信息。
BTM文件是NSKeyedArchives,反序列化后包含每个用户的登录项和后台任务字典。 图 2 - .BTM文件中单个条目的片段
如何将这些数据解释并转换成如上图所示的友好GUI视图,主要取决于参数type和disposition。目前已观察到这些字段的以下值:
|
|
type值指示该项是代理(agent)、守护进程(daemon)、应用程序(app)、用户定义项,还是Spotlight或QuickLook扩展。
当用户在“允许在后台运行”设置中将某个项目切换为“关”时,这将清除Disposition标志中的Allowed位,从而表示“不允许”。
mac_apt现在能够读取、解释并展示BTM参数,包括disposition、type、container、developer和executableModifiedDate。以下针对“Not Allowed”筛选的输出片段将显示与系统设置GUI中相同的输出。如上文图1(及下文图4)所示,2个Citrix项被切换为“关”,导致属于这些项的6个应用程序处于“不允许”组。
图 3 - 来自mac_apt的AUTORUNS输出片段,已按后台任务项和’Not Allowed’的disposition进行筛选
图 4 - 系统设置中被禁用的项目
这大大简化了后台应用程序的审查。如果应用程序本身禁用了某个启动项,那么Enabled标志将关闭,这会导致该标志不出现在BTM_Disposition列中。mac_apt会在Disabled列中填充值“1”来同时指示这种情况。
此外,还添加了一个AppArguments列,该列应从所有已处理的文件(BTM和plist)中填充完整的命令行参数。
请注意,mac_apt会处理所有遇到的.btm文件,因此您可能会看到重复的数据,因为可能存在旧的.btm文件,即之前macOS版本的残留痕迹。在我的测试系统中,我有BackgroundItems-v9.btm和BackgroundItems-v13.btm。从取证角度来看,这有助于查看特定时间点的自动启动项。如果您希望只查看当前数据,必须在输出中对Source列进行筛选。