stack canary (1) 썸네일형 리스트형 Stack Canary 1. 정의 스택 버퍼 오버플로우로부터 반환 주소를 보호하는 기법이다. x64아키텍처는 8Byte의 카나리가 생성되며, x86아키텍처는 4byte의 카나리가 생성된다. ( NULL바이트가 포함되어, 실제로는 7byte와 3byte로 생성된다. ) 2. 동작과정 ① 함수의 프롤로그에서 스택 버퍼와 반환주소 사이에 임의의 값을 삽입한다. ② 함수의 에필로그에서 임의 값이 변조되었는지 확인한다. ③ 임의의 값이 변조되었다면, BOF가 발생한 것으로 인식해서 프로세스가 강제 종료된다. 3. 카나리 적용없이, 컴파일하고 싶은 경우 Ubuntu 18.04의 gcc는 기본적으로 스택 카나리를 적용해서 바이너리를 적용한다. 따라서, 아래와 같은 컴파일 옵션을 추가해야, 카나리 없이 컴파일이 가능하다. -fno-stack.. 이전 1 다음