Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

最近学校电脑有很多老师喜欢使用U盘拷贝文件,但是我发现,许多老师的U盘都被感染上了病毒。这种病毒很常见,感染力极强,而且甚至像360系软件等等根本无法查杀。那么,这种病毒如何查杀呢?

1.病毒介绍

文件夹EXE病毒,学名Worm.Win32.AutoRun.soq。这种病毒只会运行在win32系统上。当你把你的U盘插入到一台电脑后,突然发现U盘内生成了以文件夹名字命名的文件,扩展名为exe,并且它们的图标跟windows默认的文件夹图标是一样的,很具有迷惑性。当你双击这个被伪装的exe文件后,木马自动启动并在电脑内下毒。

2.运作原理

简而言之,这个病毒就是将你原有的文件夹隐藏起来,然后制造一个exe文件伪装成你的文件夹,其实这个exe就是病毒。在“组织”中,勾选“显示被隐藏的文件和文件夹”,并且取消勾选“隐藏被保护的文件夹”即可看到你的文件夹。

完整病毒机理:

病毒运行后会释放以下文件:

1
2
3
4
5
6
7
8
9
10
11
12
com.run 
dp1.fne
eAPI.fne
internet.fne
krnln.fnr
og.dll
og.edt
RegEx.fnr
fne
spec.fne
ul.dll
XP-290F2C69.EXE(后8位随机)

这些文件会被复制到系统盘的C:\WINDOWS\system32里面

随后,新增以下注册表项,以达到病毒随系统启动而自启动的目的。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

注册表值:XP-290F2C69(后8位随机)

类型:REG_SZ

值:C:\WINDOWS\system32\XP-290F2C69.EXE(后8位随机)

添加以下启动项,实现病毒自启动:“C:\Documents and Settings\Administrator\「开始」菜单\程序\启动” 里的“ .lnk”指向病毒文件。

下载病毒文件: (16,896 字节)保存为以下文件,并且运行它们:
%Windir%\System32\winvcreg.exe

%Windir%\System32\2080.EXE (名称随机)

然后,被感染的电脑接入移动磁盘后,病毒会遍历移动磁盘根目录下的文件夹,衍生自身到移动磁盘根目录下,更名为检测到的文件夹名称,修改原文件夹属性为隐藏,使用户在其他计算机使用移动磁盘打开其文件夹时运行病毒, 以达到病毒随移动磁盘传播的目的。

3.解决办法:

1.杀毒软件

360并不能查清此病毒,建议使用毒霸或者电脑管家查杀。注意,该方法只能清除病毒,但不能显示被隐藏的文件夹。

2.手工清除

1、结束病毒进程。打开任务管理器,选择进程,结束进程XP-290F2C69.EXE(后8位随机),winvcreg.exe,2080.exe(随机名)。

2、删除病毒在System32生成的以下文件:

com.run dp1.fne eAPI.fne internet.fne krnln.fnr og.dll og.edt RegEx.fnr fne spec.fne ul.dll XP-290F2C69.EXE winvcreg.exe 2080.EXE(随机名)

3、删除病毒的启动项,删除以下启动项:

“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”里的XP-290F2C69.EXE(后8位随机)

“C:\Documents and Settings\Administrator\「开始」菜单\程序\启动” 里的“ .lnk”

4、清除你的点击“开始”—输入“cmd” ,进入命令提示符,然后进入你U盘所在的根目录,具体操作如下,比如你的U盘盘符位G(即你的U盘在G盘),那么依次运行如下命令(第一行的“G:”为你的U盘盘符):

注意:第二句话会删除根目录下包括非病毒在内的所有exe文件,谨慎使用,可以仅使用1、3句话然后手动删除exe文件夹

1
2
3
cd /d G:
for /f "delims=" %a in ('dir /b /ad') do (del /a /f /q "%a.exe")
for /f "delims=" %a in ('dir /b /adh') do (attrib -s -h -r "%a")

这一步也可以用C++来代替:(不会清除其他文件)

首先删除你跟目录下所有exe文件夹,随后使用此代码:

#include <iostream>
#include <cstring>
#include <windows.h>

void listFiles(const char * dir);

int main()
{
    using namespace std;
    char dir[100];
    cout << "Enter a directory (ends with \'\\\'): ";
    cin.getline(dir, 100);
    strcat(dir, "*.*");   
    listFiles(dir);
    return 0;
}

void listFiles(const char * dir)
{
    using namespace std;
    HANDLE hFind;
    WIN32_FIND_DATA findData;
    LARGE_INTEGER size;
    hFind = FindFirstFile(dir, &findData);
    if (hFind == INVALID_HANDLE_VALUE)
    {
        cout << "Failed to find first file!\n";
        return;
    }
    do
    {
        if (strcmp(findData.cFileName, ".") == 0 || strcmp(findData.cFileName, "..") == 0)
            continue;
        if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  
        {
            cout << findData.cFileName << "\t<dir>\n";
             string str="attrib \"";
            str.append(findData.cFileName);
            str.append("\" -s -h");
            system(str.c_str());
            
        }
        else
        {
            size.LowPart = findData.nFileSizeLow;
            size.HighPart = findData.nFileSizeHigh;
            cout << findData.cFileName << "\t" << size.QuadPart << " bytes\n";
        }
    } while (FindNextFile(hFind, &findData));
    cout << "Done!\n";
    system("Pause");
}

输入你U盘所在盘符(例如 G:\) (\要反斜杠)即可

评论