Canary란 무엇인가?Canary는 BOF를 막기 위한 보호 기법 중에 하나이다. 메모리의 스택에 특정 패턴으로 삽입되는 임의의 값인데, 주로 함수의 리턴 주소와 로컬 변수가 저장된 스택 프레임 사이에 위치한다. BOF가 발생하면 스택에 쓰여진 Canary값을 덮어쓰게 되는데 함수가 종료되기 전에 Canary값이 변하지 않았는지 검사하고 Canary값이 변경되었을 경우에는 프로그램이 변조가 있음을 인식하고 종료한다.Canary 적용 확인Canary가 적용되었는지 알 수 있는 방법은 두 가지가 존재한다. 첫 번째로는 checksec 명령어를 통해 알 수 있다.두 번째로는 gdb를 통해 어셈블리코드로 확인하는 것이다. 123456 0x0000000000001189 : endbr64 0x000..