IT

이 bash 포크 폭탄은 어떻게 작동 작동?

lottoking 2020. 7. 19. 09:04
반응형

이 bash 포크 폭탄은 어떻게 작동 작동? [복제]


Wikipedia에 따르면 다음은 매우 우아한 bash 포크 폭탄입니다.

:(){ :|:& };:

어떻게 작동합니까?


세 가지 큰 조각이 있습니다.

:()      # 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.

편집 : 아래 의 윌리엄의 의견은 제안한 내용에 대한 더 나은 표현 제안 사항을 통합하도록 편집했습니다.


짧은 답변 :

콜론 ( ":")은 함수가있는 함수에 파이프 된 함수를 실행하고이를 backgroun에 넣습니다. 이는 2 개의 함수 사본이 호출됨을 의미합니다. 재귀가 시작됩니다.

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

반응형