mow*_*ker 10 fork pipeline batch-file
我正在维基百科上查看叉炸弹,批量示例如下:
%0|%0
Run Code Online (Sandbox Code Playgroud)
要么
:here
start ''your fork bomb name''.bat
goto here
Run Code Online (Sandbox Code Playgroud)
要么
:here
start %0
goto here
Run Code Online (Sandbox Code Playgroud)
我理解了第二个,他们开始了另一个自己的实例,然后重复,但我不明白第一个.我读到管道执行右边的文件,文件的输出在左边.叉炸弹为什么不能成为:
%0
Run Code Online (Sandbox Code Playgroud)
我会假设这会调用自己,但然后立即终止,但为什么不会%0|%0终止?即使新实例将继续创建新实例,但是在开始第二次实例后不是第一次完成吗?是什么让第一个继续?
编辑:是否循环,因为在返回递归调用之前,所有实例都无法终止?这是否意味着它只会调用第一个%0?
%0永远不会结束,但它永远不会创建多个进程,因为它会立即将控制转移到第二个批处理脚本(这恰好就是它本身).
但是除了父进程之外,Windows管道还为管道的每一侧创建一个新进程.在管道的每一侧终止之前,父进程无法完成.所以带有简单管道的主程序将有3个进程.如果管道的每一侧递归地调用父批,你可以看到炸弹如何快速失控!
| 归档时间: |
|
| 查看次数: |
25668 次 |
| 最近记录: |