我现在在终端中,假设有一个病毒每次我进入终端并终止进程(使用 ps -ax)时都会重新打开,它只会使用新的 PID 重新打开。那么如何使用“bash -c 'while [ 0 ]; do date;done'”在后台连续终止进程?
答案1
像这样玩进程打地鼠游戏是愚蠢的行为。相反,使用ps(1)
查找进程的父进程 ID (PPID),并终止不断重生问题进程的父进程。如果发现父进程是launchd(8)
,则使用launchctl(1)
停止该作业。然后在以下三个路径中查找launchd
.plist
指示launchd
运行该作业的文件:
~/Library/LaunchAgents/
/Library/LaunchAgents/
/Library/LaunchDaemons/
请注意,如果您使用的是 2015 年在 macOS 10.11 El Capitan 中引入系统完整性保护 (SIP) 之前的旧版本 macOS (Mac OS X、OS X),那么还有两个额外的目录需要查找launchd
.plists
:
/System/Library/LaunchAgents/
/System/Library/LaunchDaemons/
SIP 使得恶意软件几乎不可能修改下的这些位置/System/
,因此在 El Capitan 及更高版本中您通常不需要在那里寻找恶意软件。