版主
- 帖子:4140
- 注册:
2008-07-24
- 来自:
|
发表于:
2009-02-09 22:13
|
只看楼主
短消息
资料
简单方法处理usp10.dll
之所以病毒释放usp10.dll,是用了DLL劫持技术,该病毒全盘查找有exe文件的文件夹,释放usp10.dll 当exe运行时,系统会根据他的导入表为他加载他需要的DLL,而查找这个DLL是有优先级的,即先从当前目录中查找,如果当前目录不存在,再从windows\system32\中查找,病毒就通过了这点小技巧劫持了系统的usp10.dll,运行了自身.这也是病毒实行反复感染的手段,即使你重装了系统盘,当你运行其他的盘的可执行文件时,就运行了病毒,我们是不是有什么手段破坏这个加载次序。 先看看微软的知识库里的knowdlls的解释
With the KnownDLLs registry entry, Windows NT uses the following search order to locate the DLL: 1. The \WINNT\SYSTEM32 directory. 2. The directory of the executable for the process that is loading the DLL. 3. The current directory of the process that is loading the DLL. 4. The \WINNT directory. 5. A directory listed in the PATH environment variable.
操作系统提供的某些DLL得到了特殊的处理。这些DLL称为已知的DLL。它们与其他DLL基本相同,但是操作系统总是在同一个目录中查找它们,以便对它们进行加载操作。在注册表中有下面的关键字: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnowDlls 当LoadLibrary或LoadLibraryEx被调用时,这些函数首先查看是否传递了包含.dll扩展名的DLL名字。如果没有传递,那么它们将使用通常的搜索规则来搜索DLL。 如果确实设定了.dll扩展名,那么这些函数将删除扩展名,然后搜索注册表关键字KnownDLL,以便确定它是否包含匹配的值名字。如果没有找到匹配的名字,便使用通常的搜索规则。但是,如果找到了匹配的值名字,系统将查找相关的值数据,并设法使用值数据来加载DLL。系统也开始在注册表中的DllDirectory值数据指明的目录中搜索DLL。按照默认设置,DllDirectory默认的值的数据是%SystemRoot%\System32。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs] "usp10"="usp10.dll" "DllDirectory"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\ 00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,00,00
新建一个记事本文档,输入上面的代码,保存reg格式,导入文件就ok了,重新启动电脑,这样病毒就不会通过其他的可执行文件感染了 首发地址,多多支持用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; CIBA; TheWorld)
最硬的石头 最后编辑于 2009-02-09 22:20:47
|