스택카나리(Stack canary)
카나리(canary) 카나리아라는 새의 일종입니다. 이 새는 산소포화도가 민감하기 때문에 탄광이나 군대 등등 독가스 여부를 확인하는데에 사용이 되었던 걸로 알려져있습니다. 스택카나리(stack canary) 컴퓨터에서도 이 카나리를 본따 만든 스택카나리(stack canary)가 있습니다. 그림으로 간단하게 역할을 보겠습니다. 함수가 실행될 때에, 프로세스 스택공간에 카나리값을 저장합니다. 함수가 실행을 종료하는 시점에 저장했던 카나리값을 현재의 값과 비교합니다. 비교했는데 값이 다르다면 '스택이 깨졌다'라고 판단합니다. 코드상에서는 문제가 없어보이더라도 운영체제상에서 알수없는 요인으로인해 스텍이 오염될 수 있습니다. 그러면 원래 원하는 값과 다른 결과값이 나올 수도 있습니다. 이를 검사할 수 있는 기능..
CS지식 학습
2024. 4. 10. 14:46