最后更新:2020-8-30
大家应该对DirectX修复工具并不陌生,该工具主要就是为了解决0xc000007b问题而设计的(如果之前不知道这个工具的,可以参看DirectX修复工具增强版介绍)。然而,近日接连出现很多用户连DirectX修复工具也打不开,双击后也是提示0xc000007b错误(如下图),难道是医者不能自医?这是怎么回事呢?
问题描述:
先来详细描述一下这个问题的现象。首先来说,系统里有很多程序都打不开,都是提示0xc000007b错误。其次,很多之前明明能打开的程序,突然之间也打不开了,提示0xc000007b错误。最后,奇怪的是,并不是所有文件都打不开,有的打得开,有的就死活打不开,提示0xc000007b错误。
这个问题排查花了很久,最主要的原因就是出现概率极小,在我的电脑不能复现。不过,感谢那些热心的用户,给我发邮件交流,并且让我远程查看,总算是发现了问题的症结所在。在给这些用户远程时,我发现了一个问题,就是DirectX修复工具V3.8版的两个程序DirectX 和DirectX_Repair_win8_win10.exe大小应该分别是832KB和833KB,然而,当我给他们检查时,发现在他们电脑里的大小分别是859KB和860KB(如本文图1)。再用校验码校验一下,果然检验值不同,换句话说,程序已经被修改了,所以会报0xc000007b错误打不开。
那么第一个问题就来了,是谁修改的程序呢?用户反馈他们什么也没操作,并不知道怎么回事。经过杀毒软件的甄别,结果就一目了然了,程序是被病毒修改,文件已经面目全非,所以报错无法打开。
那么第二个问题,为什么有的程序不受影响,有的程序就打不开呢?关于这点并没有确凿的证据,根据我的分析是这个病毒只能修改没有数字签名的文件,有数字签名的文件它动不了,无法修改,所以还可以正常运行。所以这就是为什么一些Windows系统和微软的应用还能运行,但是我的游戏、工业软件、还有一些不知名的小程序运行不了了。微软的程序有数字签名,平时用的游戏exe程序、DirectX修复工具的exe程序没有数字签名,被这个病毒修改了,自然就运行不了了(原版的游戏可能有数字签名,但是你用的破解补丁一定不是原版的,所以就没数字签名了)。
可能有人要问第三个问题,那把你的DirectX修复工具exe文件加上数字签名不就可以了?其他所有的exe都加上数字签名不就可以了?理论上确实是可以的,不过数字签名需要很复杂的注册、维护手续和费用,普通人是难以承受的,只有大的软件公司才能承担,所以说给所有exe都加上数字签名还有一定的难度。
解决方法:
Whatever,我不care这些过程了,最重要的一个问题,如何解决?解决办法其实很简单——杀毒!只要用你的杀毒软件全盘扫描,把所有感染这个病毒exe文件中的病毒都清除掉,让exe文件恢复原状,就可以正常运行了。有人会问,我的杀毒软件一直后台在开着呢,没提示有病毒啊?别太相信你的杀毒软件,有的时候它确实没有病毒能力强。你手动杀一下保证你有意外惊喜。另外,如果你正在用的杀毒软件查不出病毒,那么建议换用别的杀毒软件,应该也能解决。不过退一步来讲,如果你的系统真是已经病入膏肓各种杀毒软件都杀不掉的话,那么可能也只有重装系统才能解决了。
解决方案都有了,那么就还剩最后一个问题了,究竟如何判断到底是不是病毒感染造成的呢?对于新手或者说简单点的方法,就是看DirectX修复工具exe文件的大小;对于老司机或者可靠点的方法,就是看DirectX修复工具exe文件的校验码(校验工具链接)。如果文件大小或者校验码和官方标准的不一致(见下表),则可以认为是病毒修改了文件导致无法运行。下表是我梳理的历代官方DirectX修复工具exe文件大小和校验码,供大家参考。
历代DirectX修复工具属性信息一览表*
|
DirectX |
DirectX_Repair_win8_win10.exe*** |
||||
大小** |
MD5校验码 |
SHA1校验码 |
大小 |
MD5校验码 |
SHA1校验码 |
|
V1.0 |
92KB |
48442db1d0745e9f33b8cf2bca6affbe |
7d0fa836cdb31ca3d823852b4b0b3b7c3f9ff3c2 |
- |
||
V1.2 |
304KB |
bf2bca6dff839a5e99a6ba0e5784affd |
03084040cc48c80059f6dfd3f6139cbcf340398b |
- | ||
V1.2.2 |
313KB |
252b64908944fad7223fee7bc5f2d643 |
97f3c97c21ea039530d5367ad96ec197d9241cf1 |
- | ||
V2.0 |
348KB |
0c857395e6f7186bd2b7aa365f248745 |
3cd06fe01f2fb858f890ef5f90266a5c20396158 |
- | ||
V2.1 |
344KB |
66b4b148ff46797aa3e3be82cbc0eb36 |
5fb75f83e929c7efe7a22bb2d3dd7575f524ca01 |
- | ||
V2.5 |
360KB |
5133feb9a5e2c84dcf83747d4f083cd8 |
1aed870879ad848ba93fe166fe1999d086a07f60 |
361KB |
e6ab6c164a9fbdbbc701f335c57a1ab2 |
f0d2b3e9d88eecd5920f05d58c30cddd12cfc2ff |
V3.0 |
337KB |
9e22e40f371dfe012b6d3dca4ad74753 |
48ed3b6d4afec4ac5efaa1c68df5bcacc67bf205 |
337KB |
651312055b4a5a2e472b233253523720 |
e9f379182b7e2411fa0e2bbfdcae0bc430370fdf |
V3.2 |
375KB |
5f1fdd4764d1fa5ed199740b82fe23cc |
d418f994881071e1c329f0f98fe704f6a5bb4266 |
375KB |
6f4b9a69e43b9cc94a83d846b358518f |
c36a871f337df152942e6ff52ac8c2d345e99025 |
V3.3 |
500KB |
bb4083808ea490f99c7d49cd5a0ac48b |
ba8c4895204a21a03abca0b910372aa2fdad5c29 |
500KB |
7b6c063b5504a87682069a5680feb409 |
46c28ac769c3e8951b71e7f72ab9859568fe27d3 |
V3.5 |
633KB |
529ecadde86c4baf3d5ca604002433ba |
6b6d177d6ad87a8d46e785e701f56b87fe814856 |
633KB |
38339cc7cb1cd26d3cb7b0d494023a08 |
24c391030f9c82ac029c9588162060f970b4a43d |
V3.7 |
782KB |
0615325098da4e624ef854af60b56ba2 |
2c94acc2ffcbdf6b1162dd250a29dbdea044d926 |
782KB |
3da615350c74ceee68a7383c2aa5564b |
3b8bf4a59b073afd21276319e83a75832591f574 |
V3.8 |
832KB |
496c0cabab27c3c46abcfb387d4cfc3d |
a6b1900b92c5894d9ac27192fe6b1f7894a4925b |
833KB |
4ee7e568586f71f99b3a83a33894c894 |
4d7252eaa4ed68edb8e46334e0d072066a986dfd |
V3.9 | 862KB | eeab9900cc4c10da8e6b786e5f79d09c | dbb71b10f5341cf6936381c70d43f3cd4e7edef3 | 862KB | 431fc2ebdb6ef4eb72f951700f8ed170 | e5462d3bcd84c14e01ca7d5d1d339dc9f3cc7710 |
V4.0 | 1024KB | 16a1477a1e5e0cb16f1bcd3a1a01bf62 | b25543f6c60be291b86d13372de9e6fcd5446347 | 1024KB | 8a72de9bfabd230949a85b2a994df5c8 | 8d5a9fb87895e8f713aaed71dc687734abcc5946 |
*此表中仅列出已公开发行的版本,内测版、公测版、特别版等未公开发行的版本未作统计
**文件大小仅供参考,不同系统显示的值可能略有区别。比如V3.9版,显示862KB或者863KB都是正常的,但是如果显示889KB等明显大于正常的数值,则说明文件被篡改
***V3.5及之前版本的文件名为DirectX_Repair_win8.exe
最后插几句题外话:网上可能会有一小部分人说,诶?怎么回事,怎么杀毒软件检测你的DirectX修复工具提示有病毒?其实DirectX修复工具本身是绝对不含病毒代码的(要不然也发布不出来,各个软件站在发布软件的时候都有卡巴斯基检测、瑞星检测、360检测、小红伞检测等一系列检测,如果有病毒,软件站也不会往外发的),而之所以你检测到病毒了,是你把DirectX修复工具下到你的电脑里后,你电脑里的病毒把它感染了,而非本身就有病毒。相反,当你的杀毒软件提示DirectX修复工具有病毒并自动清除病毒后, DirectX修复工具才恢复了本来的样子,这时才可以在你的电脑上正常运行。所以如果你遇到了类似情况,不要主观第一感觉认为就是DirectX修复工具的问题,相反,可能是你电脑本来的问题。
还有一种更可怕的情况,目前有一部分钓鱼网站,专门蹭热点发布一些热门应用,但是他们提供的就是盗版的、有病毒的、别有用心的恶意程序。如果你不小心从这些钓鱼网站下载了DirectX修复工具,中病毒导致电脑用不了是小,电脑里有的QQ微信网银全被盗号也不是没可能,对于这种情况大家一定要擦亮眼睛,至少目前我就发现了两个盗版DirectX修复工具的情况,在这我就不点名了,只能跟大家说,去正规网站,或者我博客里链接到的下载地址(传送门:标准版、增强版、在线修复版),应该可以说还是安全的。
总结:
导致0xc000007b问题众多,一般情况下都可以通过使用DirectX修复工具增强版修复解决。可是如果连DirectX修复工具自己都出现0xc000007b错误,则极有可能是病毒修改了文件导致,可通过全盘杀毒,或换用其他杀毒软件全盘杀毒解决。判断是否为病毒作祟的方法是看DirectX修复工具exe文件的大小或者校验码是否和本文表格中的一致,不一致就是病毒修改导致(校验工具链接)。