解决网易云音乐安装0xc000007b问题

雪风 发布于 2024-10-16 115 次阅读


TL;DR

Windows 安全中心 -> 应用和浏览器控制 -> 攻击防护-攻击防护设置
找到“强制映像随机化(强制性 ASLR)” 选项,设置为关闭,重启。

困扰了半年的问题

不知道什么时候开始,我的 Windows 11 上装不了网易云音乐了,运行安装程序会报错。彼时机器上装了 BetterNCM ,我以为是它的问题,就卸载并删除 BetterNCM 和网易云所有的数据,依然无果。接下来我上网搜索,中英文都搜了,回答大体是什么缺少 MS C++ Redistributable Pack (即常说的vc运行库),或者是说缺 DirectX ,总是都肯定该问题为缺少 dll 的问题。但显然我的机器并不是这样的情况:即使尝试过修复这些环境,并运行过多次 dism 或者 sfc ,都显示系统十分健康没有问题,同时我也重装了所有的运行库,问题依旧。好在我没放弃解决这个问题,接下来按自己的想法尝试了一些方法并最终解决了这个问题。

尝试查看依赖与虚拟机复现

在虚拟机安装了全新的 Windows 10 和 Windows 11 ,没有安装任何额外的程序的情况下,网易云音乐能够正常安装。再尝试使用旧版本的运行库,网易云音乐安装依然正常。

在有问题的机器和新虚拟机上同时打开 Dependencies 进行对比,查看缺失的dll库,确认二者未能链接的dll是相同的,并且,在Microsoft Learn中查询到,缺少的一系列 ext-ms-*.dll 等文件可以被安全忽略。

到这里可以确定并不是缺少运行库了:一样的安装包一样的环境,可以确定问题不出在此。

灵光一现:我什么时候改了这玩意?

经测试,不只是网易云音乐,KOOK的安装包也没法运行,报一样的错。到这里可以确定既不是缺少 dll ,也不是网易的问题。那还有什么能够影响到 dll 的加载呢?答案是 Windows 自己的设置。不幸的,我更改过众多设置,完全没法判断是哪一个导致了问题,这下死局了。这也是卡了半年没进展的原因,因为我不太会进行更深入的调试,也暂时没有时间。

今天我启动电脑打开开始菜单的时候,看见了 Android Studio 一闪而过,突然想起来了一个自己曾经更改过的,并确实会影响 dll 加载的设置,也就是文章开头所述的“强制映像随机化”。之前修改系统设置尝试使系统更安全时,无意间打开了这个选项,导致 Android Studio 无法启动,我随后关闭了它。后来 Android Studio 兼容了该选项,我就又重新打开了。有此先例,我决定关闭它试试,不出意料地好了。

一切都解释得通了:因为这个选项默认是关闭的。接下来我回到虚拟机上,打开这个选项并重启,果不其然,报了 0xc000007b 错误。

在一切结束之后

网易云音乐装不上,我没法好好听歌。但是缺少它的这半年我选择了 go-musicfox 作为听歌的工具,终端TUI,全平台,轻量且快速。 KOOK 似乎采用的是直接替换文件的方式,而不是安装包方式更新,因此我从来没发现;只要不卸载它我就一直能继续用。这小小的插曲为我在软件使用的习惯上带来了不少的改变,顺便发现了一个跟好用的听歌工具,也算是好事吧。