Что такое% 0 |% 0 и как оно работает?

Если вы запускаете файл .bat или .cmd с %0|%0 внутри, ваш компьютер начинает использовать много памяти и через несколько минут перезапускается. Почему этот код блокирует вашу Windows? И что делает этот код программно? Можно ли считать это "ошибкой"?

Ответ 1

Это версия Windows боковая вилка.

%0 - это имя исполняемого исполняемого файла. Пакетный файл, содержащий только эту строку:

%0|%0

Собирается рекурсивно выполнять себя навсегда, быстро создавать множество процессов и замедлять работу системы.

Это не ошибка в окнах, это просто очень глупое дело в пакетном файле.

Ответ 2

Это известно как вилка. Он продолжает разделяться до тех пор, пока не будет выбора, кроме как перезапустить систему. http://en.wikipedia.org/wiki/Fork_bomb

Ответ 3

Что это такое:

%0|%0 - это вилка бомбы. Он будет порождать другой процесс, используя трубу |, которая запускает копию одной и той же программы асинхронно. Это заставляет процессор и память замедлять работу системы до почти остановки (или даже сбой системы).

Как это работает:

%0 относится к команде, используемой для запуска текущей программы. Например, script.bat

Символ pipe | сделает вывод или результат первой последовательности команд в качестве входа для второй последовательности команд. В случае вилочной бомбы нет выхода, поэтому он просто запускает вторую командную последовательность без ввода.

Расширяя пример, %0|%0 может означать script.bat|script.bat. Это снова запускается, но также создает другой процесс для повторного запуска той же программы (без ввода).

Ответ 4

Это логическая бомба, она воссоздает себя и берет на себя все ресурсы вашего процессора. Он перегружает ваш компьютер слишком многими процессами, и он заставляет его закрываться. Если вы создадите пакетный файл с этим в нем и запустите его, вы можете закончить его с помощью taskmgr. Вы должны сделать это довольно быстро, или ваш компьютер будет слишком медленным, чтобы что-либо сделать.