我知道rootkit可以隐藏进程,但它是侵入性的。是否有人知道我可以采取什么方法来解决这个问题。也许创建一个在Java中隐藏重要进程的“任务管理器”?
非常感谢任何帮助或指导。谢谢。
如果您能让您的学生以有限权限(非管理员帐户)运行,并在系统(管理员)帐户下运行您的守卫,则他们将无法关闭守卫。其余部分就容易了。正如Ravi Thapliyal所正确提到的那样,这应该是您的第一和唯一防线。如果由于某种原因不可行...
如果您无法阻止任意软件的安装,则最好可以轻松创建两个进程来观察彼此的存在并终止生成它们的进程。当其中一个死亡时,另一个应该生成两者的新副本,然后终止自身。将它们命名为Tuck和Hood(或任何两个看似不相关和不可疑的字母顺序相距较远的名称)。特别是与专业外观的错误消息(“检测到尝试...”)结合使用时,这应该会吓退大多数学生。
如果您可以防止任意软件的安装,则可以阻止Shift-click、Ctrl-click和其他好玩的功能以在已安装的任务管理器中执行多重选择。如果您可以使用其他更直接和简单的篡改方式,则应该这样做。或者,只需阻止所有其他任务管理器并编写自己的任务管理器,就像您建议的那样。
您可以参考罗宾汉和修士塔克的故事,这是一对进程,其中包括非常难以终止的进程。
这个病毒所做的恶作剧清单是一个非常有趣的阅读材料,但有趣的部分在于这里:
基本思路(有两个进程相互恢复)仍然可行,但是任务管理器可以同时关闭两个进程,这是一个主要障碍。不过,此时你已经拥有了一个相当不错的防御措施,特别是如果这两个进程在进程列表中不相邻的话。当然,你不必止步于两个进程。除非用户找到它们,否则它们都会存活。... When Robin Hood was X'ed, the following sequence of events took place:
!X id1 id1: Friar Tuck... I am under attack! Pray save me! (Robin Hood) id1: Off (aborted) id2: Fear not, friend Robin! I shall rout the Sheriff of Nottingham's men! id3: Thank you, my good fellow! (Robin)
Each ghost-job would detect the fact that the other had been killed, and would start a new copy of the recently-slain program within a few milliseconds. The only way to kill both ghosts was to kill them simultaneously (very difficult) or to deliberately crash the system.
...