在C语言中,隐藏进程通常涉及到操作系统级别的知识,不同的操作系统有不同的方法来实现进程隐藏,在这里,我将详细介绍在Windows和Linux系统中如何实现进程隐藏。
创新互联公司-专业网站定制、快速模板网站建设、高性价比顺城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式顺城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖顺城地区。费用合理售后完善,10余年实体公司更值得信赖。
1、Windows系统
在Windows系统中,可以通过修改进程的属性来实现进程隐藏,具体步骤如下:
(1)创建一个新的进程,并将其属性设置为隐藏,这可以通过调用CreateProcess
函数来完成,以下是一个示例代码:
#include#include #include int main() { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; // 设置窗口标志为不显示窗口 si.wShowWindow = SW_HIDE; // 设置窗口状态为隐藏 // 创建新进程 if (!CreateProcess(NULL, // 可执行文件名 "C:\WindowsSystem32 otepad.exe", // 命令行参数 NULL, // 进程安全属性 NULL, // 线程安全属性 FALSE, // 继承句柄 CREATE_NEW_CONSOLE, // 创建标志 NULL, // 环境变量 NULL, // 当前目录 &si, // 启动信息 &pi // 进程信息 )) { printf("CreateProcess failed: %d ", GetLastError()); return 1; } // 等待进程结束 WaitForSingleObject(pi.hProcess, INFINITE); // 关闭进程和线程句柄 CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; }
(2)修改进程的窗口标题,以使其与系统其他进程的标题区分开来,这可以通过调用SetConsoleTitle
函数来完成,以下是一个示例代码:
#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; // 设置窗口标志为不显示窗口 si.wShowWindow = SW_HIDE; // 设置窗口状态为隐藏 GetModuleFileName(NULL, szExeFile, MAX_PATH); // 获取可执行文件名 // 打开进程快照,找到目标进程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)以查找目标进程ID(PID)和优先级类(priority class) printf("Process32First failed: %d ", GetLastError()); CloseHandle(hSnapshot); // 关闭进程快照句柄并退出程序(如果找不到目标进程ID(PID),则返回错误代码) return 1; } else { // 如果找到了目标进程ID(PID),则将其优先级类(priority class)设置为最低优先级,并继续查找下一个进程信息块(PEB)以确认是否找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句柄(hSnapshot)的句柄值相同,即找到了目标进程ID(PID)和优先级类(priority class)相同且名称相同的进程信息块(PEB)和进程快照句迹
名称栏目:c语言怎么隐藏进程
分享链接:http://www.csdahua.cn/qtweb/news41/284891.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网