fork 炸弹】的更多相关文章

众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能.这样的一款shell中自然不会缺少“函数”这个元素来帮助程序进行 模块化的高效开发与管理.于是产生了由于其特殊的特性,bash拥有了fork炸弹.Jaromil在2002年设计了最为精简的一个fork炸弹的实 现. 所谓fork炸弹是一种恶意程序,它的内部是一个不断在fork进程的无限循环,fork炸弹并不需要有特别的权限即可对系统造成破坏.fork炸 弹实质是一个简单的递归程序.由于程序是递归的,如果没有任何限制,这会导…
Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: :(){:|:&};: 这样看起来不是很好理解,我们可以更改下格式: :() { :|:& }; : 更好理解一点的话就是这样: bomb() { bomb|bomb& }; bomb 因为shell中函数可以省略function关键字,所以上面的十三个字符是功能是定义一个函数与调用这个函数,函数的名称为:,主要的核心代码是:|:&am…
一段古老的Linux shell程序 :() { :|:& };: 这是bash shell的写法,首先定义了一个函数:(),花括号里面是函数体,这里递归执行函数本身,通过管道在后台再递归运行一次本程序,最后的冒号就是立刻执行当前这个函数.这样一直运行下去,直到系统崩溃,这就是fork炸弹. 第一个冒号:代表函数名,Linux shell脚本函数格式: fname (), 则:代表fname 大括号{}, 包含函数体,是保留字,与函数体之间必须由空格分隔 第二个:,执行函数,什么也不做,通过|:…
原文出处: saymagic Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: ::(){:|:&};: 这样看起来不是很好理解,我们可以更改下格式: :() { :|:& }; : 更好理解一点的话就是这样: bomb() { bomb|bomb& }; bomb 因为shell中函数可以省略function关键字,所以上面的十三个字符是功能是定义一个函数与调用这个函数,函数的名称为…
学习bash脚本看到一段代码(老鸟应该知道)挺有意思,一时看不懂.该命令不需要管理员即可运行,请不要在你的机器上使用以下脚本,否则你知道你在干什么 :() { :|: & };: 参考链接:https://www.geeksforgeeks.org/fork-bomb/ 大致是定义了个冒号的函数:() {:|: &} 表示运行这个函数并把它作为管道送到后台再运行(递归),最后一个冒号表示立即执行,然后他这个函数会一直地生成新的进程,最终形成拒绝服务攻击,直到把系统资源耗尽,你只能关机了.…
#!/bin/bash#快速消耗计算机资源,致使计算机死机#定义函数名为.(点), 函数中递归调用自己并放入后台执行.() {.|.& };.…
#!bin/bash#功能:快速消耗计算机资源,致使计算机死机#作者:liusingbon#定义函数名为.(点), 函数中递归调用自己并放入后台执行function . { .|.& };.…
fork函数介绍 一个现有进程可以调用fork函数创建一个新进程.该函数定义如下: #include <unistd.h> pid_t fork(void); // 返回:若成功则在子进程中返回0,在父进程中返回子进程ID,若出错则返回-1 fork函数调用一次,返回两次.它在调用进程(称为父进程)中返回一次,返回值是新派生进程(称为子进程)的进程ID号:在子进程中返回一次,返回值为0.因此,返回值本身告知当前进程是子进程还是父进程. fork在子进程返回0而不是父进程的进程ID的原因在于:任…
并发:一个处理器同时处理多个任务. 并行:多个处理器或者是多核的处理器同时处理多个不同的任务. fork创建子进程 import os import time #fork出一个子进程,子进程也从这一行开始执行 ret = os.fork() if ret == 0: while True: print("---1---") time.sleep(1) else: while True: print("---2---") time.sleep(1) 输出 ---2--…
多任务理解 单核cpu完成多个cpu的切换 时间片轮转 优先级调度 并发看上去一起执行 并行一起执行 调度算法 什么样的情况下用什么样的规则让谁去执行. 一般情况下电脑都是并发的 进程的创建-fork 进程VS程序 编写完毕的代码,在没有运行的时候,称为程序 正在运行的代码,称为进程 进程,除了包含代码以外,还有需要运行的环境,所以和程序是有区别的 fork() fork创建一个进程,ret大于0是父进程,不确定返回几,ret等于0是子进程 在linux系统下(centos)才能执行,windo…