Что делает этот код? Если он неочевиден, то почему он вредоносный?
Код, который вы упомянули, имеет вид Linux fork bomb . Fork bomb - это функция, которая используется для проведения атаки типа «отказ в обслуживании».
Давайте разберем код:
Базовая c структура Linux bash функция имеет вид:
function(){
arg1=$1
arg2=$2
echo 'Hello'
#perform_something on $arg
}
Сравнивая функцию вилочной бомбы с приведенным выше синтаксисом функции bash, она будет выглядеть следующим образом:
:(){
:|:&
};:\n
Где :
: ()
Определяет функцию с именем ":".
: |:
Функция ":" вызывает себя рекурсивно и направляет вывод другому вызову функции ":" (что делает бомбу-вилку неостановимой, пока вы не перезагрузите систему).
&
Это переводит выполнение функции в фоновый режим.
;
; завершает функцию.
:
Вызывает функцию (бомба-вилка) без аргументов, потому что функция бомбы-вилки не требует аргументов для запуска.
Какой это язык?
Язык Bash.
В будущем, когда я столкнусь со стеной пунктуации, как я могу узнать выше двух? Есть ли веб-сайт / инструмент для этого или какой-то другой разумный метод?
Вам потребуется использовать Google и выполнить поиск, разбив строку знаков препинания по частям.
Предупреждение: Не запускайте этот код в вашей Linux системе, так как он сделает вашу систему с sh и не отвечает, пока вы не перезагрузите его.