我在Linux系统上找到了一个Torjan,它使用了一种叫做“快速分叉”的方法,就像下面的代码一样
while(1)
{
count += 1;
pid_t pid = fork();
if (pid < 0)
{
printf("there is something wrong\n");
}
if (pid > 0) // father process
{
/* every 0x1000 times fork run the evil code once */
if (count & 0xfff)
{
exit(0);
}
/* stop the program if the job isn't done in XXs */
alarm(XX);
// evil code
}
}
这是非常有效的,你无法通过ps aux
找到它,无论如何找到进程并在不重启的情况下终止它?
附:代码以普通用户(非root用户身份)运行,我也没有root访问权限。
答案 0 :(得分:4)
如果在每个fork之后进程名称没有改变,你可以使用一个名为“fast kill”的方法,就像这样
$ while true; do killall -9 process_name; done
(但如果删除了原始文件,如何获取进程名称?抱歉,我没有足够的声誉来添加评论)