问题描述
- Chrome浏览器所有页面崩溃,包括设置页面,“喔唷,崩溃啦!”
- 显示错误码:STATUS_INVALID_IMAGE_HASH
- Chrome所有插件报错,右下角一串弹框
问题所在
Google在79版本(2019年12月20号左右)的更新中又重新启用了Renderer Code Integrity Protection(渲染器代码完整性保护),会阻止签名不是谷歌和微软的模块加载。该功能已经在之前一个版本中导致同样的问题,并由Google自己禁用了。
解决方法
禁用谷歌chrome的这项功能
- Win+R打开运行对话框,输入regedit打开注册表编辑器
- 导航到
HKEY\_LOCAL\_MACHINE\SOFTWARE\Policies\Google \Chrome
- 在右边窗口中,右键单击新建>DWORD(32位)值以创建新密钥
- 双击它,然后将值名称改为RendererCodeIntegrityEnabled,并将值数据输入为
0
- 重新启动chrome
- 如果电脑没有所述的路径,可以自己新建:
HKEY\_LOCAL\_MACHINE\SOFTWARE\Policies\Google\Chrome
也能解决。
临时方案:
加入启动参数:--test-type --no-sandbox
相关小技巧
这是在找chrome的冲突dll的时候学到的技巧,平时没什么用,至少现在是,但以后谁说得准呢
- chrome临时禁用sandbox启动
在启动时用命令覆盖- Win+R打开运行窗口
- 输入chrome.exe --no-sandbox,回车
- chrome禁用某个功能 在启动时用命令覆盖
- Win+R打开运行窗口
- 以禁用RendererCodeIntegrity为例,输入chrome.exe --disable-features = RendererCodeIntegrity,回车
- 显示chrome客户端加载的模块列表
- 在导航栏输入chrome://conflicts/#R
- 检查事件日志 Windows事件日志将包含有关拒绝加载模块的信息,排查上面这个chrome崩溃错误时的方法:
- 右键开始图标,打开事件查看器
- 展开应用程序和服务日志>Microsoft>Windows>CodeIntegrity>可操作
- 查找ID为3033的事件
- 详细信息将指示导致崩溃的dll的名称和位置