완료됨
스택버퍼오버플로우 ex2 메모리할당에 관해

temp 랑 auth 메모리 할당이 왜 temp가 먼저 되는건가요? 그리고 할당시 항상 마지막 메모리공간 바로 뒤에 새로운 변수의 메모리 공간이 할당되는건가요?

#시스템해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
snwo
2024 Invitational Contenders

코드위쪽 주석을 보시면 어떤 컴파일러로 컴파일 했는지 나와있지 않습니다. 컴파일러(gcc,clang 등)나 운영체제에 따라 스택내 지역변수 순서가 다른 것같습니다.

https://kldp.org/node/61898
여기 참고하시면 padding 으로 일정단위로 스택을 정렬한다고 하네요. char a[7] 이런거 말이죠. 직접 소스짜보면서 디버깅해보셔도 좋을 것같습니다. 변수 바로 뒤가 아니라 padding 되어 정렬된 메모리공간 바로뒤가 맞을껍니다... 아니면말구요

2020.12.10. 12:47