다음은 포맷스트링의 종류를 설명하고 있다. 형식에 대한 매개변수는?매개… | [정보보안기사 필기] 23년 1회차 기출문제 상세 페이지
1[정보보안기사 필기] 23년 1회차
다음은 포맷스트링의 종류를 설명하고 있다. 형식에 대한 매개변수는?
| 매개변수 | 형식 |
|---|---|
| %d | 정수형 10진수 상수(integer) |
| ( ㉠ ) | 문자스트링 |
| ( ㉡ ) | 16진수 양의 정수 |
| ( ㉢ ) | %n의 반인 2바이트 단위 |
1
㉠ : %s, ㉡ : %o, ㉢ : %lf
2
㉠ : %s, ㉡ : %x, ㉢ : %hn
3
㉠ : %c, ㉡ : %o, ㉢ : %lf
4
㉠ : %c, ㉡ : %x, ㉢ : %hn
해설
㉠은 %s, ㉡은 %x, ㉢은 %hn이다.
표에서 ㉠의 형식은 "문자스트링"이므로 문자열 포인터를 받아 출력하는 %s가 들어간다. ㉡은 "16진수 양의 정수"이므로 부호 없는 값을 16진수로 출력하는 %x이다.
㉢은 "%n의 반인 2바이트 단위"라고 했다. %n은 그때까지 출력된 바이트 수를 4바이트 정수 단위로 메모리에 써 넣는데, short를 뜻하는 h를 붙인 %hn은 절반인 2바이트 단위로 기록한다. 포맷스트링 공격에서 주소를 상·하위로 쪼개 덮어쓸 때 쓰이는 지시자다.
%c는 문자 하나, %o는 8진수, %lf는 double 실수를 출력하므로 표의 설명과 맞지 않는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.