SentinelAgent 与 think-cell 触发:"COMBASE.DLL STATUS_ACCESS_VIOLATION"
问题
我的计算机上安装了 SentinelOne 的 SentinelAgent 安全工具。使用 think-cell 的内部数据表后,有时会显示 COMBASE.DLL STATUS_ACCESS_VIOLATION
错误消息。
在某些情况下,错误消息不会出现,而是会启动一个新的 Excel 窗口(常规的独立 Excel 应用程序的窗口)。
解决方案
通过安装以下 Microsoft Windows 更新可以解决该问题。
注释:在本文的之前一个版本中,我们根据从微软获得的信息,将 2022 年 10 月的第三周作为第一波 Windows 更新的预期发布日期。然而,微软最终将这一波更新推迟到 11 月。以下是截至 2022 年 12 月 1 日提供的信息。
对于下面列出的 Windows 版本,Microsoft 于 2022 年 11 月发布了可选版本(即 Microsoft 命名惯例中的 11C 版本)。参考 Microsoft 2022 年 11 月 15 日的发布信息 — KB5020030(OS 版本 19042.2311、19043.2311、19044.2311 和 19045.2311)预览版
- Windows 10 v22H2(版本 19045)
- Windows 10 v21H2(版本 19044)
- Windows 10 v21H1(版本 19043)
- Windows 10 v20H2(版本 19042)
对于以下 Windows 版本,更新最初预计在 11 月,但我们尚未收到更新信息。不过,2023 年 1 月最有可能,因为 12 月的更新是为安全问题保留的。
- Windows 11
- Windows Server 2022
- Windows 10 v2004
对于此 Windows 版本,最初预计 2023 年 1 月进行更新,但我们尚未收到更改信息。
- Windows 10 v1809:1B(标准版本,2023 年 1 月第二个星期二)
预计 Microsoft 随后会将可选的“C” 版本转移到标准“B”版本。
如果在安装适当的 Windows 更新后仍然遇到问题,请与 我们的支持团队 联系。
重现步骤
如果您不确定遇到的是否是此错误或类似错误,请尝试以下再现步骤:
- 打开 PowerPoint
- 插入 think-cell 堆积图:
插入 → think-cell → 元素 → 堆积图 → 点击幻灯片以插入图表
→ 内部数据表将打开(Excel 进程显示在任务管理器 → (更多详细信息) → 详细信息) - 关闭内部数据表
→ 等到任务管理器 → (更多详细信息) → 详细信息中的 Excel 进程关闭(可能需要大约 30 秒)
→CRITICALWITHMSG COMBASE.DLL 10.0.18362.1645+0x1BEBBE: STATUS_ACCESS_VIOLATION
或启动一个新的 Excel 窗口
→ 在关闭错误消息后,Excel 进程将关闭
分析
只有在同时启用 think-cell 和 SentinelOne 的 SentinelAgent 时,受影响的 Windows 版本才会出现此问题。我们的开发人员对此问题进行了详细分析:
在 COMBASE.DLL
函数内的 CCtxChnl::OnCall
中发生崩溃。我们调查了 64 位 COMBASE.DLL 10.0.19041.1202 中的问题,下面的地址偏移量和符号名称来自该版本。CCtxChnl::OnCall
中的大多数代码对于为 this->_pIFaceEntry->_pID
的成员 null
而言似乎很可靠(例如从 CCtxChnl::OnCall
调用 CStdWrapper::IsNAWrapper
,并且有代码对此进行处理)。但是,若 CCtxChnl::OnCall
中的 IsCallTracingEnabled
调用返回 true
,则代码会尝试访问 this->_pIFaceEntry->_pID->_oid.Data1
,而不会检查 this->_pIFaceEntry->_pID
是否为 null
,这会导致访问冲突 (COMBASE.DLL!Imagebase+0x00000000001A77B0
)。
临时解决方法
如果您还无法将 Windows 更新到某个固定版本,您的 IT 部门可以尝试此解决方法:
在固定的 Windows 版本可用之前,一位 think-cell 客户从 SentinelOne 收到了此解决方法。如需有关此解决方法的进一步信息,请联系您的 SentinelOne 支持人员,并参阅票证 #652625。
- 获取计算机的 SentinelOne 密码
- 以管理员身份运行 CMD:
cd "C:\Program Files\SentinelOne\Sentinel Agent <X.X.X.XXX\>"
sentinelctl config agent.relinking.com false -k "PASS PHRASE FROM STEP ONE"
sentinelctl config agent.relinking.com
(返回值应该是:false
) - 等待 5 分钟,然后重新启动计算机。