programing

이 배시포크 폭탄은 어떻게 작동합니까?

elecom 2023. 5. 3. 20:48
반응형

이 배시포크 폭탄은 어떻게 작동합니까?

위키피디아에 따르면, 다음은 매우 우아한 바시 포크 폭탄입니다.

:(){ :|:& };:

어떻게 작동합니까?

그것을 요약하면, 세 가지 큰 조각이 있습니다.

:()      # Defines a function, ":". It takes no arguments.
{ ... }; # The body of the function.
:        # Invoke the function ":" that was just defined.

본문 내부에서는 함수가 두 번 호출되고 파이프라인이 백그라운드로 실행됩니다. 프로세스에서 연속적으로 호출될 때마다 ":"에 대한 호출이 훨씬 더 많이 발생합니다.이로 인해 시스템 리소스의 폭발적인 소비가 급속도로 발생하여 작업이 중단됩니다.

한 번만 호출하고 무한 반복하면 원래 프로세스에서 스택 오버플로가 발생하기 때문에 충분하지 않습니다. 이는 지저분하지만 처리할 수 있습니다.

보다 인간 친화적인 버전은 다음과 같습니다.

kablammo() {             # Declaration
  kablammo | kablammo&   # The problematic body.
}; kablammo              # End function definition; invoke function.

편집: 아래 윌리엄의 의견은 위에서 말한 것보다 더 나은 표현이었기 때문에, 저는 그 제안을 통합하기 위해 편집했습니다.

단답:

콜론(":")이 함수가 되므로 함수에 파이프된 함수를 실행하고 이를 백그라운드에 배치하면 함수의 모든 호출에 대해 함수의 2개 복사본이 호출됩니다.재귀가 발생합니다.

언급URL : https://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

반응형