(가) ~ (다) 안에 들어갈 용어를 바르게 연결한 것은?
함수 P가 함수 Q를 호출하기 위해, P는 Q에 전달할 인수를 스택에 넣는다. Q를 호출하는 call 명령어를 수행하면가 스택에 저장된다. Q는(가)를 스택에 넣는다. 프레임 포인터 레지스터 값을 현재의 포인터 값으로 설정하고, 스택 포인터를 아래로 움직여(나)를 저장할 공간을 할당하고, Q의 코드를 수행한다. 컴파일러의 최적화 기능에 따라 실제 배치는 차이가 있을 수 있으나, 저장된(다)와(가)에 겹쳐 쓰기는 스택 버퍼 오버플로 공격의 핵심이다.(나)
(가) (나) (다)
- ①반환 주소 P의 스택 프레임 포인터 지역 변수
- ②반환 주소 Q의 스택 프레임 포인터 지역 변수
- ③P의 스택 프레임 포인터 지역 변수 반환 주소
- ④Q의 스택 프레임 포인터 지역 변수 반환 주소
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)