如何在不重启的情况下杀死“快速fork()”进程?

时间:2017-12-15 04:02:06

标签: linux fork

我在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访问权限。

1 个答案:

答案 0 :(得分:4)

如果在每个fork之后进程名称没有改变,你可以使用一个名为“fast kill”的方法,就像这样

$ while true; do killall -9 process_name; done

(但如果删除了原始文件,如何获取进程名称?抱歉,我没有足够的声誉来添加评论)