什么是%0 |%0,它如何工作?


77

如果您在%0|%0内部运行.bat或.cmd文件,则计算机将开始使用大量内存,并在几分钟后重新启动。为什么此代码会阻止Windows?这段代码以编程方式做什么?可以将其视为“错误”吗?


Answers:


140

这是Windows版的前叉炸弹

%0是当前正在执行的批处理文件的名称。仅包含以下行的批处理文件:

%0|%0

将永远递归执行,快速创建许多进程并降低系统速度。

这不是Windows中的错误,而是在批处理文件中做的非常愚蠢的事情。


7
为什么%0 |%0打破窗口,但%0没有打破窗口?
帕维尔

14
@Pavel:.bat文件的作用是:读取指令,在文件末尾终止。如果您运行%0:进程1:开始,运行%0(因此创建进程2);然后死掉进程2:开始,运行%0(因此创建进程3);然后死掉,因为创建者将死掉,所以您最多只能运行两个进程。前叉炸弹的重点是创建2个版本。因此,P1创建2个进程(1'和1“),这两个进程将分别创建2(因此4),并呈指数级增长
。– pltrdy


25

这是什么:

%0|%0叉子炸弹。它将使用管道|异步生成同一程序的副本,从而生成另一个进程。这会占用CPU和内存,从而使系统减速至几乎停止运行(甚至使系统崩溃)。

工作原理:

%0指用于运行当前程序的命令。例如,script.bat

管道|符号会将第一个命令序列的输出或结果作为第二个命令序列的输入。对于叉式炸弹,没有输出,因此它将简单地运行第二个命令序列而无需任何输入。

扩展示例%0|%0可能意味着script.bat|script.bat。这将再次运行,但还会创建另一个进程以再次运行同一程序(无输入)。


6

这是一个逻辑炸弹,它会不断重新创建自身并占用您的所有CPU资源。它会使您的计算机过载,进程过多,并迫使计算机关闭。如果您在其中创建一个批处理文件并启动它,则可以使用taskmgr结束它。您必须非常快地执行此操作,否则计算机将无法执行任何操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.