五千年(敝帚自珍)

主题:highway、老兵帅客、还有阿康,我想问您们一个问题! -- 边寒剑

共:💬9
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 highway、老兵帅客、还有阿康,我想问您们一个问题!

    今天我通过杀毒软件发现了我的计算机里面又两个文件是有病毒的,一个是winsearch.exe,另一个是mwqu_32.dll.现在到是不同担心,我把他们都已经杀掉了!但是我看到相关的一些材料上面写到如果当初不先删除winsearch.exe的话,那么mwqu_32.dll是无法杀掉的,下次启动还会出现.换句话说,就是mwqu_32.dll这个文件是和winsearch.exe相关联的.或者说,是winsearch.exe正在使用他,我现在就是想问一下,如何能够查出哪个文件正在使用另一个文件,或者说怎么样能够查出某个文件和另一个文件相关联?

    万份感谢!

    • 家园 不好意思,这个我不懂

      你就听听老兵和Highway这两蒙古大夫的,先试把试把

    • 家园 你可以这样做

      假定你会使用winhex,你可以打开一个DLL文件,然后查找你所关心的文件名是否在这个DLL文件中间出现,如果出现,就算是调用了这个文件。

      这样做的好处是winhex可以很容易地搞到而且不涉及文件加载问题。

      如果你是做开发的而且对VC++比较熟,那么VC++有对应的工具来查看该DLL文件对其它文件的引用关系。

      说到highway所说的那三种DLL,其实它们在文件的相互引用方面倒是类似的,当然所用的表和位置肯定是不同的,但是在使用winhex的情况下,这些并不重要。

      • 家园 .NET的DLL在被程序载入后也可以被覆盖更新(over writer)。这个特性是COM DLL

        不具备的。比如用使用了COM的ASP程序,如果要更新这个DLL,那么要先Shut down process。而使用.NET的ASP.NET你可以直接更新.NET DLL without shutting down the process first。这是所谓Shadow copy在.NET的一个应用。

        普通的Private .NET DLL不touch Registry,这和COM DLL不一样;不同版本的同名.NET DLL可以同时被不同的Process载入,这和WIN API的DLL也不同。

        基于这些考虑,我认为.NET的DLL已经不是传统意义上的DLL了,只不过是文件pack的一个形式。

        • 家园 .Net的DLL文件只是一个形式,本质上它是一个Assembly

          .Net的Reflection要比Java的对应部分强,你不仅可以分析各级成分的组成,也可以动态生成它们,然后重新加载。当然这需要装上.Net Framework而不仅仅是Runtime,因为它需要编译器的支持。

          我个人并不喜欢Private Assembly和Shadow Copy,因为这只适用于小程序;对于比较大的程序来说,Global Assembly是必需的。

    • 家园 你问的这个问题可不容易说清楚。就说DLL吧,到现在可能有3种类型的

      1)WIN32 API类型的DLL

      2) COM/COM+ 类型的DLL

      3) .NET类型的。

      它们的后缀都一样(DLL),但行为却区别很大,尤其是.NET DLL,它已经不是传统意义上的DLL了,更象是Java 的Jar文件。

      探测一个进程载入了什么样的DLL不是非常简单的事,有一些第三方的工具软件可以帮助你获得这样的信息(.NET DLL应该容易很多)。以前在DEBUG一些很奇怪的问题的时候,我做过类似的工作。

      如果你不是搞IT的,这个问题就不用深究了。老兵是从DOS编程搞起的,对于前两类DLL一定有不少感触。Windows 所谓的DLL HELL吗,没有程序员不被折磨过!

      优化大师发现有个奇怪的启动项,但是没有任何标志,于是cad(ctrl+alt+del)一下

      发现有个winsearch.exe的程序在运行,关了,机器立即挂了

      到DOS下面去删了它(c:windowswinsearch.exe),呵呵,机器启动,毒霸没有发现病

      毒了,不过提示c:windowswinsearch.exe找不到,呵呵俺开始-运行-system.ini

      发现了:system.ini文件boot节下面shell=Explorer.exe 后面跟着c:windowswinsearch.exe呢,把它也给删了(shell=Explorer.exe 一定要保留啊,后面的删了就行)

      然后找MWQU_32.DLL,居然没有发现,然后用毒霸全面的查啊杀啊,没有问题

分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河