今天遇到一个好玩的问题,同事机器部分应用程序出现异常,很莫名其妙,最终发现原来他无意中用防火墙阻止了ws2_32.dll访问网络;
这个ws2_32.dll到底干什么的呢,之前的概念只是知道它是一个系统比较重要的模块,具体做什么不知道,所以趁此机会多了解有点,并记录下来:
ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。
看到有这样的说法:“访问网络的程序运行时会自动调用"ws2_32.dll"文件,"ws2_32.dll"是个动态链接库文件,位于系统文件夹中,Windows在查找动态链接库文件时,会先在应用程序当前目录搜索,如果没有找到然后才会搜索Windows所在目录,如果还是没有会搜索system32和system目录。新建的"ws2_32.dll"文件不具备真正地"ws2_32.dll"文件所具有的功能,所以程序就无法运行了。”专门在win7下找程序试了下,未成功,所实验程序均能找到system32下的对应文件,应该是在2000,xp下的逻辑。这个说法中的原理很容易被拿来利用,比如病毒程序,建一个假的ws2_32.dll就能导致程序无法运行,很简单,很恶劣;