【笔记】chrome 无法打开特定协议或访问特定协议时卡死
简读
chrome
访问协议ssodb
会启动本地ssotool.exe
, 将ssotool.exe
备份一下, 复制一份calc.exe
到ssotool.exe
的文件夹, 并改名为ssotool.exe
, 然后正常在网站启动一次, 此时会打开计算器, 再给ssotool.exe
替换回去就可以了, 就很神奇…
背景
单点登录网站A, win10上安装网站A下载安装的登录工具ssotool.exe
流程
- 安装
ssotool.exe
时, 会在电脑上注册一个ssodb
的协议 - 在
chrome
中登录网站A, 点击对应的资源时, 会访问ssodb
开头的地址,chrome
就会提示"网站想要打开一个应用", 点击确定后就会启动ssotool.exe
问题
正常使用一段时间后, 某天无法启动ssotool.exe
, 通过浏览器的控制台查看, 发现对应的请求标红提示取消
同时, 如果直接复制链接到标签地址栏会导致chrome
整个卡死, 且无CPU占用
后续发现, 只要在地址栏输入该协议名称就会导致chrome
卡死, 其他的则没问题
如果更换其他浏览器, 则可以正常启动ssotool.exe
处理
使用openark
中的processmonitor
对chrome
的访问进行监控, 发现其可以正常访问到ssotool.exe
灵光一现, 想着给它替换成calc.exe
, 看看能不能启动, 复制了一份calc.exe
替换ssotool.exe
测试后发现可以打开, 然后再替换回ssotool.exe
, 居然就恢复了
注意, 替换为calc.exe
后必须要正常在网站的页面上操作一次唤起, 不能直接在标签地址栏中输入ssodb://xxxx
进行访问, 还是会卡死的