新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c語言怎么隱藏進程
在C語言中,隱藏進程通常涉及到操作系統(tǒng)級別的知識,不同的操作系統(tǒng)有不同的方法來實現(xiàn)進程隱藏,在這里,我將詳細(xì)介紹在Windows和Linux系統(tǒng)中如何實現(xiàn)進程隱藏。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比順城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式順城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋順城地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
1、Windows系統(tǒng)
在Windows系統(tǒng)中,可以通過修改進程的屬性來實現(xiàn)進程隱藏,具體步驟如下:
(1)創(chuàng)建一個新的進程,并將其屬性設(shè)置為隱藏,這可以通過調(diào)用CreateProcess函數(shù)來完成,以下是一個示例代碼:
#include#include #include int main() { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; // 設(shè)置窗口標(biāo)志為不顯示窗口 si.wShowWindow = SW_HIDE; // 設(shè)置窗口狀態(tài)為隱藏 // 創(chuàng)建新進程 if (!CreateProcess(NULL, // 可執(zhí)行文件名 "C:\WindowsSystem32 otepad.exe", // 命令行參數(shù) NULL, // 進程安全屬性 NULL, // 線程安全屬性 FALSE, // 繼承句柄 CREATE_NEW_CONSOLE, // 創(chuàng)建標(biāo)志 NULL, // 環(huán)境變量 NULL, // 當(dāng)前目錄 &si, // 啟動信息 &pi // 進程信息 )) { printf("CreateProcess failed: %d ", GetLastError()); return 1; } // 等待進程結(jié)束 WaitForSingleObject(pi.hProcess, INFINITE); // 關(guān)閉進程和線程句柄 CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; }
(2)修改進程的窗口標(biāo)題,以使其與系統(tǒng)其他進程的標(biāo)題區(qū)分開來,這可以通過調(diào)用SetConsoleTitle函數(shù)來完成,以下是一個示例代碼:
#include#include #include #include #include int main() { HANDLE hProcess; PROCESSENTRY32 pe32; DWORD dwPriorityClass; BOOL bGotOwner = FALSE; TCHAR szExeFile[MAX_PATH]; STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; // 設(shè)置窗口標(biāo)志為不顯示窗口 si.wShowWindow = SW_HIDE; // 設(shè)置窗口狀態(tài)為隱藏 GetModuleFileName(NULL, szExeFile, MAX_PATH); // 獲取可執(zhí)行文件名 // 打開進程快照,找到目標(biāo)進程ID(PID) HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDLE_VALUE) { printf("CreateToolhelp32Snapshot failed: %d ", GetLastError()); return 1; } pe32.dwSize = sizeof(PROCESSENTRY32); if (!Process32First(hSnapshot, &pe32)) { // 獲取第一個進程信息塊(PEB)的地址和大小,并遍歷所有進程信息塊(PEB)以查找目標(biāo)進程ID(PID)和優(yōu)先級類(priority class) printf("Process32First failed: %d ", GetLastError()); CloseHandle(hSnapshot); // 關(guān)閉進程快照句柄并退出程序(如果找不到目標(biāo)進程ID(PID),則返回錯誤代碼) return 1; } else { // 如果找到了目標(biāo)進程ID(PID),則將其優(yōu)先級類(priority class)設(shè)置為最低優(yōu)先級,并繼續(xù)查找下一個進程信息塊(PEB)以確認(rèn)是否找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句柄(hSnapshot)的句柄值相同,即找到了目標(biāo)進程ID(PID)和優(yōu)先級類(priority class)相同且名稱相同的進程信息塊(PEB)和進程快照句跡
網(wǎng)站題目:c語言怎么隱藏進程
文章來源:http://fisionsoft.com.cn/article/dhoihpd.html


咨詢
建站咨詢
