완료됨
질문
0x00000000004006e8 <+0>: push rbp
0x00000000004006e9 <+1>: mov rbp,rsp
0x00000000004006ec <+4>: sub rsp,0x30
0x00000000004006f0 <+8>: mov eax,0x0
0x00000000004006f5 <+13>: call 0x400667 <init>
0x00000000004006fa <+18>: lea rdi,[rip+0xbb] # 0x4007bc
0x0000000000400701 <+25>: mov eax,0x0
0x0000000000400706 <+30>: call 0x400540 <printf@plt>
0x000000000040070b <+35>: lea rax,[rbp-0x30]
0x000000000040070f <+39>: mov rsi,rax
0x0000000000400712 <+42>: lea rdi,[rip+0xab] # 0x4007c4
0x0000000000400719 <+49>: mov eax,0x0
=> 0x000000000040071e <+54>: call 0x400570 <__isoc99_scanf@plt>
여기서 scanf 인자주는부분
0x000000000040070b <+35>: lea rax,[rbp-0x30]
요 버퍼 크기 [rbp-0x30]는 처음에 늘려준
0x00000000004006ec <+4>: sub rsp,0x30
여기부분을 가르키는건가요 아니면
call한후 그쪽 스택프레임에서 [rbp-0x30]을 가르키는건가요
#시스템_해킹
#공격기법
작성자 정보
답변
1
믕믕이부하
대표 업적 없음
scanf가 call되기 이전 스택프레임에서 가져옵니다. 애초에 인자로 주는 변수는 scanf 함수 내부가 아니라 scanf를 호출하는 함수(main 등)에 포함되어 있으니까요...!