五千年(敝帚自珍)

主题:【原创】关于清理“流氓”软件的一点体会 -- 兼答虎子 -- Highway

共:💬23
全看分页树展 · 主题
家园 【原创】关于清理“流氓”软件的一点体会 -- 兼答虎子

说来真巧,今天晚上有一个朋友打电话来,说是他的电脑有问题,让我过去看看。我问他有什么症状,他说有的杀毒软件会报告说有病毒存在但是却无法杀掉。而MacFee说没有病毒。具体表现就是电脑运行很慢,时不时Popup一些广告。

去了他家,我做的第一件事是用msconfig看了一下子启动的程序,果然,哪里有二三十项垃圾程序。我全部uncheck了这些项目。然后再Task Manager来关闭这些垃圾程序(End Process)。但很快我发现有两个程序无法杀掉。好像是comwiz.exe和winnet.exe。Kill这两个Process的时候没有错误消息,但不到一秒钟后他们马上就又出现了。

点看全图

外链图片需谨慎,可能会被源头改

我这时候Reboot了machine。启动后发现comwiz.exe和winnet.exe已经在运行。用msconfig一看,这两个选项不知为什么又回来了。一会儿功夫,广告等东西又开始Popup了。

我想了想这两个程序的原理(我不认为这是病毒),如果让我写这样的程序,我是可以做到的。其原理是:

1)在install的时候,修改registry,使自己成为自动启动程序。

2)当程序被kill的时候(Windows的一个Event),Fork一个新的Process,再次运行自己(保证永远不被杀死)。其逻辑有点像死循环。由于程序被载入运行的时候该文件被lock,用户无法删除这个可执行文件。

3)监视registry文件(文件被改动的时候,Windows会Raise一个event)。如果有人将自己设为非自启动,将其改回来。

这样,在用户login以后,该程序已经启动。用户无法停止它,无法删除它,它可以胡作非为了。

那我们该怎么办呢?

我这样试了一下,感觉效果还挺好。

1)Reboot Machine,在启动前按F8健进入Safe Mode,从Safe Mode启动。
2)Safe Mode启动时,Windows只载入系统核心程序,不会运行自启动程序。
3)找到“流氓”软件所在位置(directory) ,将其删除。这时候它不在运行,文件没有被lock,所以你可以delete它。
4)运行msconfig,uncheck“流氓”软件项。
5)Reboot Machine,正常启动。

这样,问题解决了。我大概试验了5分钟左右,没有什么异常产生。并且希望明天他不要再打电话找我。

这是一个比较老实的“流氓”软件,不是病毒。否则他修改了Core Services,我就没法Clean Start了。所谓的“先下手为强”我必须在他启动之前完成我的工作。只要能防止它启动,那就有办法删除它。

别的“流氓”软件是怎么个“流氓”法我不知道,有的可能会想别的怪招,也学更为过者甚至和病毒差不多了(比如修改操作系统本身以保证自己总被启动)。这些等家伙碰到了再用砖拍,现在先不着急!

点看全图

外链图片需谨慎,可能会被源头改


本帖一共被 3 帖 引用 (帖内工具实现)
全看分页树展 · 主题


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

Copyright © cchere 西西河