如果您运行带有%0|%0
的.bat或.cmd文件,您的计算机将开始使用大量内存,并在几分钟后重新启动。为什么这段代码会阻止你的Windows?这个代码以编程方式做了什么?它会被视为“虫子”吗?
答案 0 :(得分:128)
这是fork bomb的Windows版本。
%0
是当前正在执行的批处理文件的名称。一个仅包含以下行的批处理文件:
%0|%0
将永远递归地执行自己,快速创建许多进程并减慢系统速度。
这不是Windows中的错误,在批处理文件中只是一个非常愚蠢的事情。
答案 1 :(得分:38)
这被称为叉炸弹。 它不断分裂,直到没有选项,只能重新启动系统。 http://en.wikipedia.org/wiki/Fork_bomb
答案 2 :(得分:19)
%0|%0
是 fork bomb 。它将使用管道|
生成另一个进程,该管道异步运行同一程序的副本。这会占用CPU和内存,使系统速度降至接近停止状态(甚至使系统崩溃)。
%0
是指用于运行当前程序的命令。例如,script.bat
管道|
符号将第一个命令序列的输出或结果作为第二个命令序列的输入。在fork炸弹的情况下,没有输出,所以它只是在没有任何输入的情况下运行第二个命令序列。
展开示例,%0|%0
可能意味着script.bat|script.bat
。这会再次运行,但也会创建另一个进程来再次运行相同的程序(没有输入)。
答案 3 :(得分:6)
它是一个逻辑炸弹,它不断重建自己并占用你所有的CPU资源。它会使您的计算机过多,并且会强制关闭计算机。如果你在其中创建一个批处理文件并启动它,你可以使用taskmgr结束它。你必须很快地完成这项任务,否则你的计算机将无法做任何事情。