什么是%0 |%0以及它是如何工作的?

时间:2012-11-18 00:50:48

标签: windows command-line

如果您运行带有%0|%0的.bat或.cmd文件,您的计算机将开始使用大量内存,并在几分钟后重新启动。为什么这段代码会阻止你的Windows?这个代码以编程方式做了什么?它会被视为“虫子”吗?

4 个答案:

答案 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结束它。你必须很快地完成这项任务,否则你的计算机将无法做任何事情。