递归应用:让系统卡住 fork炸弹

bash shell

:

{

:|:

}

:

其中函数名“:”只是简化的一例,实际实现时可以随意设定,一个较易理解(将函数名替换为“forkbomb”)的版本如下:

forkbomb(){ forkbomb|forkbomb &} ; forkbomb

注:| 的作用:管道,前者的输出作为后者的输入,此处若不加|呢?

    用sleep 1; 做下缓冲(不让系统卡的太快) 

原理:

递归应用:让系统卡住 fork炸弹,布布扣,bubuko.com

时间: 2024-10-11 05:16:30

递归应用:让系统卡住 fork炸弹的相关文章

fork炸弹

:(){ :|:& };:                         # 著名的 fork炸弹,系统执行海量的进程,直到系统僵死 fork炸弹(fork bomb)在计算机领域中是一种利用系统调用fork(或其他等效的方式)进行的拒绝服务攻击.与病毒与蠕虫不同的是,fork炸弹没有传染性,而且fork炸弹会使对同时执行进程/程序数设限的系统无法执行新程序,对于不设限的系统则使之停止响应.以fork炸弹为代表的自我复制程序有时亦被称为wabbit. fork炸弹的概念:进程递归式派生(for

Linux fork炸弹解析 ——Linux Fork Bomb

Linux Fork Bomb :(){ :|: & };:是一个bash函数,以Fork Bomb闻名,是一个拒绝服务攻击 的Linux 系统.如果你好奇地去执行了这个命令,那么赶快重启系统吧~! 命令解析 :() { : | : & };: :在这里是一个函数名,我们定义之,并在后面执行它. :|:&,:函数的输出通过管道传给另一个冒号函数作为输入,并且在后台执行. { };标识着里面的内容是一个函数主体. 最后一个:为定义完成后的一次函数执行. 原理解析 首先需要说明的是:是

Linux shell 的一个fork炸弹

.(){ .|.& };.  或者  :(){ :|:& };: 这13个字符由Jaromil ,在 2002 年设计了最为精简的一个 fork炸弹的实现. .()  说明下面要定义一个函数,函数名为小数点,没有可选参数:{    表示函数体的开始:.|.& 表示函数体真正要做的事情,首先它递归使用本函数,然后李永贵管道调用一个新进程(它要做的事情也是递归调用本函数),并将其放到后台执行.}    表示函数体的结束:;    并不会执行什么操作,在命令行中用来分隔两个命令用.从总体

fork 炸弹----linux

既然我们讨论的都是些奇怪的代码,不妨思考一下这一行: :(){ :|: & };: 对你来说,这可能看起来有些神秘,但是我看来,它就是那个臭名昭著的 Bash fork 炸弹.它会反复启动新的 Bash shell,直到你的系统资源消耗殆尽.系统崩溃. 不应该在最新的 Linux 系统上做这些操作.注意,我说的是不应该.我没有说不能.正确设置用户权限,Linux 系统能够阻止这些破坏性行为.通常用户仅限于分配使用机器可用内存.但是如果作为 root 用户的你运行了这行命令(或者它的变体 Bash

Linux系统基于fork()新进程的创建

作者:严哲璟 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 fork属于系统调用,而此系统调用创建一个子进程,由于其为系统调用,所以基本的用户态到内核态的切换,以及中断的处理,都与普通的系统调用一样,分为3个主要过程 1.调用fork这个API,然后软中断,进入内核态,堆栈切换到内核堆栈,保存用户态sp,cs:eip; 2.执行system_call,然后SAVE_ALL,根据ea

shell脚本fork炸弹 学习

:(){ :|:& };: 短短的13个字符却是个炸弹,以前看起来是单纯的死记硬背,现在也知道点皮毛原理了. :()    bash中允许:作为函数名 {}   函数体 :|:&    :先调用函数,然后管道调用另一个新进程(调用:函数),&放到后台执行 ;    命令间隔符 :   继续调用本身函数 程序员的思想是天马行空的,却又是很严禁的.

Windows版fork炸弹

Win键+R 在运行窗口输入 cmd /c @cd /d %temp% & echo @start /min cmd ^& cmd > cmd.bat & cmd 回车 愚人节快乐!

Linux Fork Bomb

众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能.这样的一款shell中自然不会缺少"函数"这个元素来帮助程序进行 模块化的高效开发与管理.于是产生了由于其特殊的特性,bash拥有了fork炸弹.Jaromil在2002年设计了最为精简的一个fork炸弹的实 现. 所谓fork炸弹是一种恶意程序,它的内部是一个不断在fork进程的无限循环,fork炸弹并不需要有特别的权限即可对系统造成破坏.fork炸 弹实质是一个简单的递归程序.由于程序是递归的,如果没有任何限

linux shell for循环解决递归循环目录结构

今天总结一下关于linux shell里的递归循环的问题起因是一个群友在群里的提问问的是怎么把有或多或少空目录的几个文件移动走的问题归根结底就是一个递归循环的问题 如果之前接触过c语言之类的编程语言.那么这个很好理解就是通过函数来不断的自己调用自己这种方法有一个很大的弊端就是需要很多资源比如有一种进程调用的 fork 炸弹 就是自调用搞的 接下来我就贴一下代码然后简单的讲解一下 #!/bin/sh . /etc/plus.lib a() {     for file  in `ls $1`