Stack Cookie(GS Cookie) - Stack BOF
Stack Cookie(GS Cookie) 스택 쿠키는 스택 버퍼 오버플로우(Stack Buffer Overflow)를 차단하기 위해 함수의 시작과 끝 부분(지역 변수와 SFP, RET 사이)에 4바이트의 랜덤한 쿠키값을 삽입한 컴파일러 옵션이다. 컴파일러는 함수 시작 시 데이터 섹션(.data)에 저장된 쿠키값을 스택에 저장하고, 함수가 종료되기 전 데이터 섹션(.data)에 저장된 쿠키값과 스택에 저장된 쿠키값을 비교한다. 만약 쿠키값이 변경되었다면 오버플로우 공격이 발생한 것이므로 RET를 실행하지 않고, 예외 처리 구문을 실행하고 프로그램은 비정상 종료된다. 즉, 스택 버퍼 오버플로우를 성공하려면 RET를 변조해야 한다. RET를 변조하려면 RET 전의 쿠키값을 변조하게 되므로 RET를 실행하지 ..