进程保护有很多方法。我所知道的有HOOK API,双进程保护,还有DLL远程注入。HOOK API现在在WIN7 64位似乎已经用不了了,听说是要签名吧。
今天先说双进程保护。
双进程保护的思路很简单,A,B两个进程。A时时刻刻检测B进程有没有运行,如果没有运行就打开B,运行咋不做处理。
同样的,B也是做这件事。
关键的代码不多。
打开应用程序
ShellExecute(NULL,(LPCSTR)"open",(LPCSTR)szPath,NULL,NULL,SW_SHOW);//szPath为文件名
另外就是检测进程了。
int CheckProcess() { int x = 0;//用x来记录保护的程序是否在运行。 char Name[] = "Student.exe";//保护的进程名。 PROCESSENTRY32 pe; pe.dwSize = sizeof(pe); HANDLE hProcessShot ; hProcessShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (hProcessShot == INVALID_HANDLE_VALUE) { printf("创造句柄失败:%d",GetLastError()); } if (Process32First(hProcessShot,&pe)) { if (strcmp(pe.szExeFile,Name)==0) { x = 1; return x; } } while (Process32Next(hProcessShot, &pe)) { if (strcmp(pe.szExeFile,Name)==0) { x = 1; return x; } } return x; }