![如何隐藏正在运行的进程?](https://linux22.com/image/1111582/%E5%A6%82%E4%BD%95%E9%9A%90%E8%97%8F%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
使用 Ubuntu 12.04。有什么方法可以隐藏正在运行的进程?该进程不应该显示在系统监视器、top、htop 中。记住进程 ID (PID) 没有问题,因此可以轻松观察进程。但我想完全隐藏该进程。有什么办法吗?
答案1
除非有人开始在内核中进行限制,否则不可能隐藏该进程。
一种方法是使用以下命令更改进程名称:
prctl(PR_SET_NAME, (unsigned long) "NewName", 0, 0, 0);
..如果可能的话,使用 fork() 并让父进程终止。如果你定期这样做,那么追踪进程会变得更加困难。
答案2
我强烈建议您更改进程名称并赋予它其他名称,以便它看起来好像您正在运行一些不同的进程。
例如:您可以将进程名称从“铬合金“ 到 ”找我“。
这可以通过编程来完成。
或者
您可以在内核级别进行尝试(pid_getattr) 来实现这一点。同样,我们不建议这么做。
或者
警告!!!不要尝试以下答案:
如果你仍然想继续从顶部删除进程,那么很少有软件可以帮我们做到这一点。其中一种软件叫做“Rootkits”
Rootkit: 安装 rootkit 后,它会覆盖命令。它可以覆盖 ps、ls、netstat、find、du、ifconfig、login、killall 等命令。
有许多同名的恶意软件。所以要小心它可能会感染你的系统。
取消隐藏:要检测隐藏的进程,您可以使用取消隐藏。
答案3
您可以修改各种进程监视器的代码并重新编译它们。我不知道进程监视器如何获取有关正在运行的进程的信息,但我猜它们是从 Linux 内核获取的,也就是说,如果您修改它,它可能也会适用于任何进程监视器。
您到底为什么要隐藏该进程?您是否想过滤进程列表(使用 ps+grep 命令即可轻松完成)或真的让它无法被看到,除非您知道进程 ID?