๐Ÿ’ฅ ํด๋ž˜์‹ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ RIP ์žฅ์•… (Buffer Overflow & Control Flow Hijack)

Step 1
์ •์ƒ ์Šคํƒ ์ƒํƒœ
Step 2
๋ฒ„ํผ ์ดˆ๊ณผ ์œ ์ž… (Overflow)
Step 3
SFP & RET ๋ณ€์กฐ
Step 4
RET ์‹คํ–‰ โž” RIP ํƒˆ์ทจ
์ •์ƒ ์ƒํƒœ: ๋ฉ”๋ชจ๋ฆฌ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€
โ–ฒ High Memory (์ƒ์œ„ ์ฃผ์†Œ)
Return Address (RET) 0x000000000040124a (<main+32>)
Saved Frame Pointer (SFP) 0x7fffffffe050
stack_buffer[48..63] 0x0000000000000000
stack_buffer[16..47] 0x0000000000000000
stack_buffer[0..15] "NORMAL_DATA\0"
โ–ผ Low Memory (ํ•˜์œ„ ์ฃผ์†Œ - RSP)
CPU ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ๋ช…๋ น์–ด ํ๋ฆ„
Instruction Pointer (RIP) 0x401180 (<vulnerable_service>)
Stack Pointer (RSP) 0x7fffffffe000
Base Pointer (RBP) 0x7fffffffe050
ํ˜„์žฌ ์‹คํ–‰ ๋ช…๋ น์–ด:
memcpy(stack_buffer, user_input, 12);
๐Ÿ’ก ์ทจ์•ฝ์  ํ•ต์‹ฌ: ์ž…๋ ฅ ํฌ๊ธฐ ๊ฒ€์ฆ ์—†์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•˜๋ฉด, ๋ฒ„ํผ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด ์ƒ์œ„ ์ฃผ์†Œ์— ์œ„์น˜ํ•œ SFP์™€ RET๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฎ์–ด์“ฐ๊ฒŒ ๋จ.