进程保护有很多方法。我所知道的有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;
}