본문 바로가기

악성코드/스텍 프레임 변조

포맷 스트링 공격

스택 조작 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