蓝盟诗人[LUC]蓝客联盟

jwgkvsq.vmx

2010-11-26 09:08 作者: 来源: 本站 浏览: 3,087 views 我要评论(1条) 字号:

先来一段百度百科的介绍

=======================================================

jwgkvsq.vmx为蠕虫病毒,名称为Net-Worm.Win32.Kido.ih。

中了jwgkvsq.vmx病毒的症状

1、在移动U盘或者移动硬盘上,会形成以下两个隐藏只读文件:
(1)autorun.inf文件,打开后全是乱码,但是在文件的后半部分发现了一些可疑的信息,那就是shelLExECUte=RuNdLl32.EXE .\RECYCLER\S-5-3-42-2819952290(和谐)-8240758988(和谐)-879315005-3665\jwgkvsq.vmx,ahaezedrn
(2)RECYCLER文件夹,它和硬盘上的回收站的文件名只差一个字母,那就是最后一个不是D而是R。在这个文件夹里面还有一个文件夹,名字是S-5-3-42-2819952290(和谐)-8240758988(和谐)-879315005-3665,再里面是一个关键性的文件:jwgkvsq.vmx。
2、无法查看隐藏文件。  即使在资源管理器的“文件夹选项”-“查看”中,选中“查看所有文件”,也会自动恢复到不显示隐藏文件,修改注册表后,能够显示所有文件,就会在移动U盘上看到这两个隐藏文件和文件夹。即便删除,那么在下次插上U盘时还会出现这两个文件(主机已感染)。
3、无法给自己的杀毒软件升级,提示网络设置错误等。
4、无法连接到杀毒网站。
5、无法使用“冰刃”这款进程查看和终止软件,一旦启动冰刃电脑立刻重启。
病毒启动的方式主要有几种方式:
1)通过加载到系统启动项,使用户在登录系统时,自动运行该病毒;
2)通过修改系统文件,使系统启动时,自动加载病毒;
3)将病毒加载为驱动程序,让系统在启动时加载并运行该病毒;
4)将病毒注册为系统服务,让系统在启动时加载并运行病毒。
这几种方法中,以第三、四中方法较为隐蔽,也较难处理。

手动清除

1.当优盘插进染毒的电脑后,优盘会自动生成两个文件,autorun.inf和RECYLER文件夹,RECYLER下面是一个回收站图标,再下面一层目录里是jwgkvsq.vmx文件。特点是autorun.inf文件和jwgkvsq.vmx的大小都是161k字节,修改时间是安装系统的时间。
2.通过修改注册表的方法,打开查看隐藏文件的选项,在C:WindowsSystem32文件夹下发现一个隐藏的.dll文件,大小161k,名字是随机的,特点是只读、隐藏,无法删除,没有微软的备注信息。虽然创建时间和修改时间都是系统安装的时间,但是还是可以一下子找到。用unlock或者360安全卫士的文件粉碎功能,反注册该dll文件,删除并重启。
3.搜索注册表,就以360检查出的异常服务项目为关键字。搜索到几处,特点是无法删除,因为这几个键值的权限只开放给了System,没有开放给其他用户组,而且System用户组没有修改权限。下面就是针对这几个键值,添加Administrators用户组,并给其修改权限,然后删除这几个键值。
手工完全清除====================================================================== 1.关闭相应svchost.exe卸载%systemroot%\system32\<rnd>.dll(rnd为随机字母)并删除之。
如何精确锁定被注入的svchost.exe进程ID?
用autoruns查看系统服务,很容易锁定病毒的DLL文件 %systemroot%\system32\<rnd>.dll (rnd 是随机字母)  执行第3步的第一项操作将ShowAll的CheckValue值设为1后,显示系统、隐藏文件。  打开%systemroot%\system32\找到<rnd>.dll (rnd 是随机字母)文件用Unlocker解锁时会发现进程ID  解锁Dll,关闭相应进程,删除<rnd>.dll (rnd 是随机字母)即可。
2.删除"C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files\Content(和谐)IE5"下及下级目录与<rnd3>.dll相同大小的病毒文件。该文件后缀可能是*.bmp,*.gif等。
3.恢复注册表  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL: CheckedValue (设置值为 1 )  HKLM\system\CurrentControlSet\Services\BITS: Start (设置值为 0x00000003 )
HKLM\system\CurrentControlSet\Services\ERSvc: Start (设置值为 0x00000002 )
HKLM\system\CurrentControlSet\Services\wscsvc: Start (设置值为 0x00000002 )
HKLM\system\CurrentControlSet\Services\wuauserv: Start (设置值为 0x00000002 )
打开注册项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs值,将病毒注册的服务项<rnd2> (rnd2 是随机字母)
删除(不要乱删,防止系统崩溃)
删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的病毒服务项<rnd2> (rnd2 是随机字母)
4.重启,病毒不会再次生成,这样这个毒便算是完全清除了。
注意:若处在局域网环境中,该病毒还会利用MS08-067漏洞主动攻击,所以域中若有其它电脑感染,有可能会重复感染,所以清除时应先断网。清除后应及时打好MS08-067对应补丁。
====================================================
以上是百度百科的介绍,再来点其它资料,
以下是摘自deathmemory博客中的文章:

简介:
病毒名称: Net-Worm.Win32.Kido.ih (变种)
大小: 125-128 Kb
生成文件: %systemroot%\system32\<rnd>.dll (rnd 是随机字母)
移动设备生成文件: autorun.inf; .\RECYCLER\S-5-3-42-2819952290-8240758988-879315005-3665\jwgkvsq.vmx (jwgkvsq 是随机字母)
备注: 以下贴出的代码,在XPSP2+VC6.0下编译通过

最近进入Windows下学习,教室电脑里Windows系统里都有Net-Worm.Win32.Kido.ih蠕虫病毒。感觉这个病毒还是挺有意思的,于是有了本文。
此蠕虫会在移动设备里生成autorun.inf和 .\RECYCLER\S-5-3-42-2819952290-8240758988-879315005-3665\jwgkvsq.vmx
。看到这里一些朋友可能会恍然了吧。这个毒的autorun.inf配置文件比较有意思,里面写了很多乱码,起到加密的作用。相信很多人都看到过。
以下是部分乱码:
=============================================================

; 郊D塮IJ刹u缹 檺G 娞穜kX镱OV黬奻烝L

; fb
; 衙o绒迪KkA a熋T獂箄er薴滼昽jP姐Ff箇u╥纆H卋阭K猌HyFL
[ TdkjJufXACQXwTrqdYPpjbSC]

;Kf抁
; 菒雒er狵疍 oJUqHK emTiv譔筿鰿廔og遄f 霥巨c?
ajzLmMmVuIndpuy = lcH
QPDdnsHCDPoyNqFrWqCPwdLwE = EYhdLWGyLTaLO

KQKpTKLgSQvADhzMNrhSy = VZqYYrMDNyVUqfoNwyaUdSitL

; YBQ疕S無耣O臑漛鐴rwuom渉HkもFy鷢b櫘i鑔踆orf碞v暺
; X纶Oqヌ髁蘫囈置郙Sv偔qh肏h
XQQT = KXpdSzJH
; XVkP鳨餉冿o賨鷏℅O邾boeS

;恙焸V嗚 vp涘驆蓈鼉鲛坍▃靌錏
; TNoA熽浶quO隠Gb 饁噢侱Yi誜镤jB篤w╦夵R?

; R娏諬 CAqVr蚿p墉喫汛h伋n僨m糶jA荎k翿T洿Wt擷薝Bu
FfWcviZFJ = kMHcLuKMpxbeHUvVLDm

; m竣D甜豽钕蔢槉軔曭H蟚莣裏渆Vl藾諷Vnn猧Pg雙r縰h猵綰 o
; 苀荱醙 閍谛u EP勞vA硴o?
Oy = X
; b蔝︽椋I滨囂lPT餻革饸鈳裾A喣膞z

=============================================================
大家都知道,autorun.inf是有很严格的输写规范才能正确执行的。而且是用';'作为注释符,也就是说正确的配置信息还是以文本形式存在文件里的,手工找还是可以找到的,这么多注释的乱码也无非是为了掩人耳目。
在API里已经有了获取ini形式配置信息的函数GetPrivateProfileString,对inf文件一样可用,两者格式几乎是一样的。
DWORD GetPrivateProfileString(
LPCTSTR lpAppName,        // points to section name
LPCTSTR lpKeyName,        // points to key name
LPCTSTR lpDefault,        // default string 当key没有找到时返回的指定字符串
LPTSTR lpReturnedString, // points to destination buffer 保存结果的char*
DWORD nSize,              // size of destination buffer 指定char*的大小
LPCTSTR lpFileName        // points to initialization filename 指定路径
);

====[autorun]获取源码====================================

const int bufSize = 2048;
char buf[bufSize];
ZeroMemory(buf,bufSize); //设置保存结果的Buffer
char path[256];
ZeroMemory(path,256);
memcpy(path,m_path,strlen(m_path));
//这里buf 获取的是所有key 的值
if(!::GetPrivateProfileString("autorun",NULL,NULL,buf,sizeof buf,path))
{
MessageBox("读取文件失败!");
return;
}
//打开及将结果保存到文件
CFile a;
a.Open(".\\Autorun_inf_View.txt",CFile::modeCreate|CFile::modeWrite,NULL);
char* tmp;
char rebuf[bufSize];
ZeroMemory(rebuf,bufSize);
CString result;
//这里是函数的主要实现。
::GetPrivateProfileString("autorun",buf,"NULL",rebuf,bufSize,path);
result.Format("%s = %s\n",buf,rebuf); //取得第一条结果
a.Write(result,result.GetLength()); //写入第一条结果
//循环取出key 并将检到的结果保存到rebuf
for (int i=0;i<sizeof(buf) ;i++)
{
if (buf[i]==0 && buf[i+1]==0)
{
break;
}
if (buf[i]==0)
{
tmp = &buf[i+1];
::GetPrivateProfileString("autorun",tmp,"NULL",rebuf,bufSize,path);
result.Format("%s = %s\n",tmp,rebuf);
a.Write(result,result.GetLength());
}
}
a.Close();

这样就取到了[autorun]所有的配置信息:
====[autorun]==========================================

AcTION = 打开文件夹以查看文件
icon = %syStEmrOot%\sySTEM32\sHELL32.Dll,4 ;这句是取shell32.dll里的编号为4的图标
shelLExECUte = RuNdLl32.EXE      .\RECYCLER\S-5-3-42-2819952290-8240758988-879315005-3665\jwgkvsq.vmx,ahaezedrn
;上面一句是调用rundll32.exe来运行jmgkvsq.vmx并且调用此文件的ahaezedrn函数
useAuTopLAY = 1

====病毒动作分析=======================================

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL
新: DWORD: 2 (0x2)
旧: DWORD: 1 (0x1)
将此项设置为2以隐藏病毒文件并在c:\windows\system32\下生成<rnd>.dll(rnd为随机字母)只读、隐藏属性的文件并且以服务注入了svchost.exe进程以达到开机自启动的目的。
HKLM\system\CurrentControlSet\Services\BITS\Start
新: DWORD: 4 (0x4)
旧: DWORD: 3 (0x3)
HKLM\system\CurrentControlSet\Services\BITS\ERSvc
新: DWORD: 4 (0x4)
旧: DWORD: 2 (0x2)
HKLM\system\CurrentControlSet\Services\BITS\wscsvc
新: DWORD: 4 (0x4)
旧: DWORD: 2 (0x2)
HKLM\system\CurrentControlSet\Services\BITS\wuauserv
新: DWORD: 4 (0x4)
旧: DWORD: 2 (0x2)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<rnd2>(rnd2为随机字母)病毒服务项

在系统盘符下生成文件 %systemroot%\system32\<rnd>.dll (rnd 是随机字母),属性为:只读,隐藏,系统属性。
在"C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files\Content.IE5"任意子目录下生成<rnd3>[1].bmp或<rnd3>[1].gif (rnd3 是随机字母)。属性为:Normal。

将其<rnd>.dll(rnd为随机字母)注入到服务项最多的svchost.exe进程中,并且以名为<rnd2>(rnd2为随机字母)服务写入了"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost"下的netsvcs键值中,加入已有的列表尾,写入"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\"下<rnd2>(rnd2为随机字母)项。并且设置了权限,不改权限是看不到里面的配置的,这个简单处理,改权限或用冰刃直接删除就可以了。
服务描述为"监测和监视新硬盘驱动器并向逻辑磁盘管理器管理服务发送卷的信息以便配置。如果此服务被终止,动态磁盘状态和配置信息会过时。如果此服务被禁用,任何依赖它的服务将无法启动。"与Windows正常的Logical Disk Manager服务的描述相同,但病毒名称是"Shell Center"。
要注意的是,病毒伪造的服务也是从服务列里随机伪造的!这里只是列举一个实例。

该病毒每隔一定时间,会在局域网中描扫活动主机,并尝试利用MS08-067攻击。攻击时会在注入的svchost中新建线程,当攻击测试结束时会关闭所建线程。

该病毒会监控移动设备,若发现可移动设备,便将autorun.inf 和 jwgkvsq.vmx 写入到指定路径中。写入操作时会在注入的svchost中新建线程,当写入结束时线程结束。此毒为了不影响系统运行速度,没有实时监控,删除写入文件后不会重复写入。

====手工清除过程========================================

1.关闭相应svchost.exe卸载%systemroot%\system32\<rnd>.dll(rnd为随机字母)并删除之。
如何精确锁定被注入的svchost.exe进程ID?
用autoruns查看系统服务,很容易锁定病毒的DLL文件 %systemroot%\system32\<rnd>.dll (rnd 是随机字母)
执行第3步的第一项操作将ShowAll的CheckValue值设为1后,显示系统、隐藏文件。
打开%systemroot%\system32\找到<rnd>.dll (rnd 是随机字母)文件用Unlocker解锁时会发现进程ID
解锁Dll,关闭相应进程,删除<rnd>.dll (rnd 是随机字母)即可。
2.删除"C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files\Content.IE5"下及下级目录与<rnd3>.dll相同大小的病毒文件。该文件后缀可能是*.bmp,*.gif等。
3.恢复注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL: CheckedValue (设置值为 1 )
HKLM\system\CurrentControlSet\Services\BITS: Start (设置值为 0x00000003 )
HKLM\system\CurrentControlSet\Services\ERSvc: Start (设置值为 0x00000002 )
HKLM\system\CurrentControlSet\Services\wscsvc: Start (设置值为 0x00000002 )
HKLM\system\CurrentControlSet\Services\wuauserv: Start (设置值为 0x00000002 )
打开注册项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost下的netsvcs值,将病毒注册的服务项<rnd2> (rnd2 是随机字母)
删除(不要乱删,防止系统崩溃)
删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的病毒服务项<rnd2> (rnd2 是随机字母)
4.重启,病毒不会再次生成,这样这个毒便算是完全清除了。

注意:若处在局域网环境中,该病毒还会利用MS08-067漏洞主动攻击,所以域中若有其它电脑感染,有可能会重复感染,所以清除时应先断网。清除后应及时打好MS08-067对应补丁。

====专杀工具源码=============================================
/*
以下是主要功能代码,已经可以达到查杀的效果,若想更完善可根据需要自行添加、修改、封装。
BOOL PromoteLimit(); //提权
BOOL CloseProc(); //结束进程
BOOL RemoveFiles(); //删除文件
BOOL RenewReg(); //恢复注册表
*/
//////////////////////////////////////////////////////////////////////////
//提权
//////////////////////////////////////////////////////////////////////////
BOOL CRemoveDlg::PromoteLimit()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;

if ( ! OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
{
//WriteToLog("openprocesstoken error");
return FALSE;
}

if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )
{
CloseHandle( hToken );
//WriteToLog("lookuprivilegevalue error");
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

if ( ! AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
{
CloseHandle( hToken );
return FALSE;
}
return TRUE;
//    MessageBox("提权成功!");
//提权代码,差不多已成套路了没什么可说的。
//////////////////////////////////////////////////////////////////////////
}
//////////////////////////////////////////////////////////////////////////
//结束进程
//////////////////////////////////////////////////////////////////////////
BOOL CRemoveDlg::CloseProc()
{
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPALL,NULL);
if (hProcess==NULL)
{
MessageBox("创建快照失败!");
return FALSE;
}
PROCESSENTRY32 lppe;
lppe.dwSize = sizeof PROCESSENTRY32;
Process32First(hProcess,&lppe);
HMODULE lphModule[100]={0};
CString temp = "";
for(DWORD count=0;Process32Next(hProcess,&lppe);)
{
//MessageBox(lppe.szExeFile);
CString strTemp = lppe.szExeFile;
strTemp.MakeLower();
if (strTemp!="svchost.exe") //svchost.exe
continue;
//temp.Format("th32ProcessID:%d,th32ModuleID:%d,th32DefaultHeapID,%d",
//   lppe.th32ProcessID,lppe.th32ModuleID,lppe.th32DefaultHeapID);
//MessageBox(temp);
MODULEENTRY32 pe32;
// 在使用这个结构之前,先设置它的大小
pe32.dwSize = sizeof(pe32);
// 给进程内所有模块建一个快照
HANDLE hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,lppe.th32ProcessID);
if (hModuleSnap == INVALID_HANDLE_VALUE)
{
MessageBox("建立Moudle快照失败!");
continue;
}
BOOL bMore = Module32First(hModuleSnap, &pe32);
while (bMore)
{
strTemp = pe32.szModule;
strTemp.MakeLower();
if(strTemp=="es.dll") //es.dll 可以是指定进程中具有代表意义的模块
{
HANDLE hTarget = OpenProcess(PROCESS_ALL_ACCESS,TRUE,lppe.th32ProcessID);
if(!TerminateProcess(hTarget,0))
{
return FALSE;
}
CloseHandle(hTarget);
break;
}
bMore = Module32Next(hModuleSnap,&pe32);
}
CloseHandle(hModuleSnap);
}
CloseHandle(hProcess);
return TRUE;
}
//////////////////////////////////////////////////////////////////////////
/*删除文件,这里为了方便只删除了system32里面的病毒文件,因为单独存放在IE临时文件中的病毒文件是无法自动运行的。当用清理工具清理系统临时文件时自然就除去了,若想删除的话,添加代码就是。*/
//////////////////////////////////////////////////////////////////////////
BOOL CRemoveDlg::RemoveFiles()
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char pathBuf[MAX_PATH];
UINT pathLength = GetSystemDirectory(pathBuf,MAX_PATH);
if (pathBuf[pathLength]!='\\')
strcat(pathBuf,"\\");
strcat(pathBuf,"*.dll");
hFind = FindFirstFile(pathBuf, &FindFileData);
while(hFind != INVALID_HANDLE_VALUE)
{
if ((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_HIDDEN)
&& (FindFileData.nFileSizeLow>125*1024 && FindFileData.nFileSizeLow <170*1024)) //缩小范围
{
// MessageBox("rtm.dll Find !");
//////////////////////////////////////////////////////////////////////////
////下面是简易的病毒特征码比较,可以改进
//////////////////////////////////////////////////////////////////////////
CString strFileName;
strFileName = pathBuf;
int pos = strFileName.Find('*');
strFileName.Delete(pos,strFileName.GetLength()-pos);
strFileName += FindFileData.cFileName;
SetFileAttributes(strFileName,FILE_ATTRIBUTE_NORMAL);
HANDLE fileHandle = CreateFile(strFileName,
GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
CString buf;
const toSize = 10*1024;
char tempBuf[toSize];
DWORD iSize = 0;
for(int wait;!ReadFile(fileHandle,tempBuf,toSize,&iSize,NULL);wait++)
{
if (wait == 5)
{
CloseHandle(fileHandle);
return FALSE;
}
Sleep(1000);
//     CString checkBuf;
//     checkBuf.Format("ReadFile Failed ! %d",GetLastError());
//     MessageBox(checkBuf);
}
for (DWORD i=0;i<iSize;i++)
{
if (tempBuf[i]=='U'&&tempBuf[i+1]=='P'&&tempBuf[i+2]=='X')
{
//MessageBox("find !"); //病毒特征码相符
CloseHandle(fileHandle);
DeleteFile(strFileName);
}
}
CloseHandle(fileHandle);
}

if(!FindNextFile(hFind,&FindFileData))
{
MessageBox("Not Find Files !");
break;
}
}
FindClose(hFind);
return TRUE;
}
//////////////////////////////////////////////////////////////////////////
/*恢复注册表,这里为了方便只修复了主要注册表,还会遗留冗余的服务配置信息,当用清理工具清理系统冗余注册表值时自然就除去了,若想完全清除的话,添加代码就是。*/
//////////////////////////////////////////////////////////////////////////
BOOL CRemoveDlg::RenewReg()
{
HKEY hkResult;
long lg = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL",
0,
KEY_ALL_ACCESS,
&hkResult);
if (lg != ERROR_SUCCESS)
{
MessageBox("打开注册表项 SHOWALL 出错!");
return FALSE;
}
DWORD buf = 0x00000000;
DWORD iResult;
RegQueryValueEx(hkResult,"CheckedValue",0,0,(BYTE*)&buf,&iResult);
if (buf == 2)
{
buf = 0x00000001;
RegSetValueEx(hkResult,"CheckedValue",0,REG_DWORD,(BYTE*)&buf,sizeof(buf));
}
RegCloseKey(hkResult);
//////////////////////////////////////////////////////////////////////////
lg = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"system\\CurrentControlSet\\Services\\BITS",
0,
KEY_ALL_ACCESS,
&hkResult);
if (lg != ERROR_SUCCESS)
{
MessageBox("打开注册表项 BITS 出错!");
return FALSE;
}
buf = 0x00000000;
RegQueryValueEx(hkResult,"Start",0,0,(BYTE*)&buf,&iResult);
if (buf == 4)
{
buf = 0x00000003;
RegSetValueEx(hkResult,"Start",0,REG_DWORD,(BYTE*)&buf,sizeof(buf));
}
RegCloseKey(hkResult);
//////////////////////////////////////////////////////////////////////////
lg = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"system\\CurrentControlSet\\Services\\ERSvc",
0,
KEY_ALL_ACCESS,
&hkResult);
if (lg != ERROR_SUCCESS)
{
MessageBox("打开注册表项 ERSvc 出错!");
return FALSE;
}
buf = 0x00000000;
RegQueryValueEx(hkResult,"Start",0,0,(BYTE*)&buf,&iResult);
if (buf == 4)
{
buf = 0x00000002;
RegSetValueEx(hkResult,"Start",0,REG_DWORD,(BYTE*)&buf,sizeof(buf));
}
RegCloseKey(hkResult);

//////////////////////////////////////////////////////////////////////////
lg = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"system\\CurrentControlSet\\Services\\wscsvc",
0,
KEY_ALL_ACCESS,
&hkResult);
if (lg != ERROR_SUCCESS)
{
MessageBox("打开注册表项 wscsvc 出错!");
return FALSE;
}
buf = 0x00000000;
RegQueryValueEx(hkResult,"Start",0,0,(BYTE*)&buf,&iResult);
if (buf == 4)
{
buf = 0x00000002;
RegSetValueEx(hkResult,"Start",0,REG_DWORD,(BYTE*)&buf,sizeof(buf));
}
RegCloseKey(hkResult);

//////////////////////////////////////////////////////////////////////////
lg = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"system\\CurrentControlSet\\Services\\wuauserv",
0,
KEY_ALL_ACCESS,
&hkResult);
if (lg != ERROR_SUCCESS)
{
MessageBox("打开注册表项 wuauserv 出错!");
return FALSE;
}
buf = 0x00000000;
RegQueryValueEx(hkResult,"Start",0,0,(BYTE*)&buf,&iResult);
if (buf == 4)
{
buf = 0x00000002;
RegSetValueEx(hkResult,"Start",0,REG_DWORD,(BYTE*)&buf,sizeof(buf));
}
RegCloseKey(hkResult);
return TRUE;
}
/*
上面功能的实现。
*/
void CRemoveDlg::OnBtnRemove()
{
// TODO: Add your control notification handler code here

if(!this->PromoteLimit())
{
MessageBox("提权失败!");
return;
}
if(!this->CloseProc())
{
MessageBox("结束进程失败!");
return;
}
if(!this->RemoveFiles())//册除文件
return;
if(!this->RenewReg())
return;
if(MessageBox("已完成!\n是否现在重启计算机?","Finished !",MB_OKCANCEL) == IDOK)
system("shutdown -r -f -t 0");
}

==================================================

==================================================

再来点其它资料:

这个病毒的别名:

电脑界普遍称为:Win32/Conficker

微软:Conficker

Symantec:W32.Downadup

F-Secure:W32/Downadup.A

Panda Software:Conficker.A

Kaspersky:Worm.Win32.Kido.bt

===========================================

专杀工具:

Symantec为这病毒研发的专杀工具,FixDownadup.exe;

http://www.symantec.com/content/en/us/global/removal_tool/threat_writeups/FixDownadup.exe

1,断掉网络,关闭全部程序;关闭系统还原;

2,执行刚才下载的FixDownadup.exe;

3,重启电脑;再执行FixDownadup.exe 以确保病毒完全清除

BitDefender的工具:

http://www.bitdefender.com/site/Downloads/downloadFile/1582/FreeRemovalTool

======================================================

百度百科的症状描述不太完美,诗人博客再来补充一下:

1.不能打开杀软的官方网站,如瑞星,卡巴还有shaduwang.com之类的

2.杀软不能更新,包括防火墙

另:手工删除过程中,可以用360的强制删除工具对已经写入U盘或硬盘的文件进行强制删除

杀完之后,可以自己做一下免疫,很简单,如下:

在DOS下
输入X:(X表示你的盘符),回车
输入md autorun.inf,回车(此步建立了一个autorun.inf文件夹)
输入cd autorun.inf,回车(进入该文件夹)
输入md undel..\  回车(建立不可删除文件夹)

这样,U盘再次插入时病毒无法自行启动

再次插入U盘,在CMD中输入X:进入U盘
输入md RECYCLER 回车
输入cd RECYCLER 回车
输入md S-5-3-42-2819952290-8240758988-879315005-3665 回车
输入cd S-5-3-42-2819952290-8240758988-879315005-3665 回车
输入md jwgkvsq.vmx 回车
输入cd jwgkvsq.vmx 回车
输入md undel..\ 回车

OK,这样就达到免疫效果了

打印
分享到:
复制链接

网友评论已有1条评论, 我也要评论

  1. root
    2010-11-26 09:09:53 沙发

    这篇文章居然在QQ空间不能发表,说是有敏感词,
    法克,这SB的河蟹社会。。。

发表评论

*

* (保密)

Ctrl+Enter 快捷回复

会员登录关闭

记住我 忘记密码

注册会员关闭

小提示: 您的密码会通过填写的"电子邮箱"发送给您.