在许多病毒和木马中,我们可以看到这样的模式,当你杀死一个进程时,新的进程将会产生。在这里,我将演示一种简单的实现办法,当然有许多种方法可以达到相同的目的。
//Create a mutex object 创建互斥对象
CreateMutex(nil,True,'asun');
if GetLastError<>ERROR_ALREADY_EXISTS then
begin //Normal-Mode 如果程序是第一次运行,则为正常模式
//再运行一个实例 保护模式
CreateProcess(nil,pchar(paramstr(0)), nil, nil, True, 0, nil, nil, SI, PI);
CoreFunc; {Main code insert to here 主要代码在这里插入}
end else
begin //Protect-Mode 如果程序是不是第一次运行,则切换为保护模式
sleep(333); //间隔时间 Interval
SI.dwFlags:=STARTF_FORCEOFFFEEDBACK;
CreateProcess(nil,pchar(paramstr(0)), nil, nil, True, 0, nil, nil, SI, PI);