stack 내 변수 순서는 무조건 역순은 아닌건가요?
안녕하세요,
문제를 풀 땐 분석하면 각 변수별 위치를 알 수 있긴 한데요. 알기로는 변수는 역순으로 stack에 들어간다고 알고 있습니다.
제공되는 소스코드를 보면
unsigned char box[0x40] = {};
char name[0x40] = {};
int name_len = 0;
뭐 이런 순서인데요.. (다른 변수들은 편의상 생략했습니다.)
그런데, 실제 stack을 분석해보면 ebp 기준으로 가까운 것이 name -> box -> name_len 이네요.
그런데 역순이면 ebp 기준으로 가까운 것이 box -> name -> name_len 이 되어야 하는 것 아닌가요?
역순이 아닌, 순서가 정해지는 다른 기준이 있는 것인지 궁금합니다.
#pwnable
작성자 정보
답변
1
wyv3rn
무플 방지 위원회장
변수 할당 순서는 선언 순서도 있지만 타입에 따라서도 결정된다고 합니다.
명확한 답은 저도 못찾았지만요 ㅠㅠ