最后更新:2019-2-22

        大家应该对DirectX修复工具并不陌生,该工具主要就是为了解决0xc000007b问题而设计的(如果之前不知道这个工具的,可以参看
DirectX修复工具增强版 <https://blog.csdn.net/VBcom/article/details/7245186>
介绍)。然而,近日接连出现很多用户连DirectX修复工具也打不开,双击后也是提示0xc000007b错误(如下图),难道是医者不能自医?这是怎么回事呢?
图1. DirectX修复工具也出现0xc000007b错误(图片由网友提供)
 

问题描述:

       
先来详细描述一下这个问题的现象。首先来说,系统里有很多程序都打不开,都是提示0xc000007b错误。其次,很多之前明明能打开的程序,突然之间也打不开了,提示0xc000007b错误。最后,奇怪的是,并不是所有文件都打不开,有的打得开,有的就死活打不开,提示0xc000007b错误。

       
这个问题排查花了很久,最主要的原因就是出现概率极小,在我的电脑不能复现。不过,感谢那些热心的用户,给我发邮件交流,并且让我远程查看,总算是发现了问题的症结所在。在给这些用户远程时,我发现了一个问题,就是DirectX修复工具V3.8版的两个程序DirectX
Repair.exe和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文件的校验码(
校验工具链接 <https://blog.csdn.net/VBcom/article/details/87779226>
)。如果文件大小或者校验码和官方标准的不一致(见下表),则可以认为是病毒修改了文件导致无法运行。下表是我梳理的历代官方DirectX修复工具exe文件大小和校验码,供大家参考。

                                                                     
 历代DirectX修复工具属性信息一览表*


 

DirectX Repair.exe

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.5及之前版本的文件名为DirectX_Repair_win8.exe

 

       
最后插几句题外话:网上可能会有一小部分人说,诶?怎么回事,怎么杀毒软件检测你的DirectX修复工具提示有病毒?其实DirectX修复工具本身是绝对不含病毒代码的(要不然也发布不出来,各个软件站在发布软件的时候都有卡巴斯基检测、瑞星检测、360检测、小红伞检测等一系列检测,如果有病毒,软件站也不会往外发的),而之所以你检测到病毒了,是你把DirectX修复工具下到你的电脑里后,你电脑里的病毒把它感染了,而非本身就有病毒。相反,当你的杀毒软件提示DirectX修复工具有病毒并自动清除病毒后,
DirectX修复工具才恢复了本来的样子,这时才可以在你的电脑上正常运行。所以如果你遇到了类似情况,不要主观第一感觉认为就是DirectX修复工具的问题,相反,可能是你电脑本来的问题。

       
还有一种更可怕的情况,目前有一部分钓鱼网站,专门蹭热点发布一些热门应用,但是他们提供的就是盗版的、有病毒的、别有用心的恶意程序。如果你不小心从这些钓鱼网站下载了DirectX修复工具,中病毒导致电脑用不了是小,电脑里有的QQ微信网银全被盗号也不是没可能,对于这种情况大家一定要擦亮眼睛,至少目前我就发现了两个盗版DirectX修复工具的情况,在这我就不点名了,只能跟大家说,去正规网站,或者我博客里链接到的下载地址(传送门:
标准版 <https://blog.csdn.net/vbcom/article/details/6962388>、增强版
<https://blog.csdn.net/VBcom/article/details/7245186>、在线修复版
<https://blog.csdn.net/vbcom/article/details/7396482>),应该可以说还是安全的。

 

总结:

        导致0xc000007b问题众多,一般情况下都可以通过使用DirectX修复工具增强版
<https://blog.csdn.net/VBcom/article/details/7245186>
修复解决。可是如果连DirectX修复工具自己都出现0xc000007b错误,则极有可能是病毒修改了文件导致,可通过全盘杀毒,或换用其他杀毒软件全盘杀毒解决。判断是否为病毒作祟的方法是看DirectX修复工具exe文件的大小或者校验码是否和本文表格中的一致,不一致就是病毒修改导致(
校验工具链接 <https://blog.csdn.net/VBcom/article/details/87779226>)。

友情链接
ioDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信