Я читал предупреждение Ubuntu Forum о вредоносных командах и нашел этот интересный камень:
:(){ :|:& };:
ПРЕДУПРЕЖДЕНИЕ. Приведенный выше код приведет к сбою на вашей машине, если только вы не установили строгие ограничения процедур (что, вероятно, нет), что приведет к принудительной перезагрузке.
Считайте, что этот код похож на запуск
sudo rm -rf /
.
Но что это значит? Даже с моим опытом программирования я никогда не видел загадочную команду, которая не является языком ассемблера.
sudo rm -rf /
. Эта команда удаляет все ваши файлы; этот просто забивает ресурсы вашей машины, пока он не станет непригодным для использования, и вам придется перезагрузить.sudo rm -rf /
это более опасно, но я видел, как люди выполняли это на удаленных серверах, «просто хотели посмотреть, что они сделали», когда вам трудно перезапустить компьютер без доступа к панели управления.arbitrary_name(){ arbitrary_name|arbitrary_name& };arbitrary_name
. Имя:
не только делает эту команду короткой и загадочной, но и превращает:
встроенную функцию , которая ничего не делает, в функцию, которая делает много . Если вы добавите его определение:(){ :|:& }
в чужую среду и оставите его там, оно ударит, когда жертва этого меньше всего ожидает .Ответы:
Это, как вы сказали, вилочная бомба. Что он делает, так это определяет функцию, а затем вызывает ее. Функция называется
:
.Давайте
forkbomb
назовем это, чтобы мы могли лучше видеть, что происходит:Как вы можете видеть и, вероятно, догадываетесь из своего опыта программирования, первая часть - это определение функции (
forkbomb(){ ... }
), а самая последняя:
- то, где вызывается функция (;
оператор just разделяет в Bash).Теперь, что делает эта функция? Если вы знакомы с Bash, вы будете знать, что
|
персонаж передает стандартный вывод одной команды / программы на стандартный ввод другой. Таким образом, в основном:|:
запускаются два экземпляра функции (именно здесь она «разветвляется»).И затем магия: команда
&
помещает эти команды в фоновый режим, позволяя возвращать исходную функцию, в то время как каждый экземпляр разветвляется, пока коровы не возвращаются домой в фоновом режиме, тем самым расходуя все свои ресурсы и разрушая систему (если она не имеет ограничений). наложено на это).источник
:
, который фактически выполняет функцию!Взято из статьи Википедии Forkbomb :
источник
Сломано:
Изменить
:
наbomb
и у вас есть:bomb(){ bomb|bomb& };bomb
Это действительно довольно элегантно.
источник