스택 조작 2.
포맷 스트링 공격의 원리
- 포맷 스트링 문자를 이용한 메모리 열람
char *buffer에 문자열을 입력할 떄 %x라는 포맷 스트링 디랙티브를 추가한 경우
#include <stdio.h>
main()
{
char *buffer = "wishfree\n%x\n";
printf(buffer);
}
결과값 : wishfree 문자열 외에 80440이라는 숫자 출력
이 숫자는 wishfree 문자열이 저장된 다음의 메모리에 존재하는 값을 인자로 가정하여 출력된다.
포맷 스트링 디랙티브 종류
잘못된 포맷 스트링 함수 사용법
#include<stdio.h>
main()
{
char *buffer = "wishfree";
printf(buffer);
}
올바른 포맷 스트링 함수 사용법
#include <stido.h>
main(){
char *buffer = "wishfree\n";
printf("%s\n", bufferr);
}
'악성코드 > 스텍 프레임 변조' 카테고리의 다른 글
스택 프레임 변수 FS (0) | 2024.12.12 |
---|---|
버퍼 오버플로우 BO (0) | 2024.12.12 |