728x90
드림핵 Memory Corruption: Stack Buffer Overflow 실습 관련 부분에 대해서 짧게 설명해보겠습니당 (실행 흐름 조작)
// Name: sbof_ret_overwrite.c// Compile: gcc -o sbof_ret_overwrite sbof_ret_overwrite.c -fno-stack-protector#include <stdio.h>#include <stdlib.h>int main(void) { char buf[8]; printf("Overwrite return address with 0x4141414141414141: "); gets(buf); return 0;} (출처 : https://learn.dreamhack.io/60#8)
주어진 코드는 위와 같습니다
리턴 주소를 0x4141...뭐 저걸로 채워달라고 합니당
일단 뇌절하는 셈 치고 꽉 채워봅니다. 성공이라고 뜨지 않는군요. 큼 뭐가 문제일까요?
0x41 은 65입니다 따라서 그거에 알맞게 값을 조정합니다
밑에 ret값을 0x41 즉 대문자 A로 전부 채워줍니다 성공이라고 뜬 것을 확인할 수 있습니다
728x90
'호그와트' 카테고리의 다른 글
코드로 그려보는 개판 1분 전 (1) | 2022.11.04 |
---|---|
준희는 귀여워? (0) | 2022.11.02 |
드림핵 Quiz: x86 Assembly 2 정리 (0) | 2022.11.01 |
드림핵 Quiz: x86 Assembly 1 (0) | 2022.11.01 |
어나니머스 해커가 되어봅시다 (2) | 2022.10.28 |