변화된 스택구조를 볼 수 있나요? - 어셈에서..
글쓴이: jenix / 작성시간: 토, 2004/02/07 - 4:16오후
안녕하세요..
요즘 어셈공부를 하고있는데요;; 음..
gcc 에서.. 컴파일시에.. 스택구조에 따라.. .s 를
다르게 출력하더라구요?..
-mpreferred-stack-boundry= 라는 옵션으로..
스택구조를 지정하는거 같은데..
음.. 근데.. 어셈은 cpu 에 의존적인거 아닌가요?
같은 시피유에서도 스택구조가 바뀔수도있나요?
컴파일러에 옵션이 있으니까 당연히 바뀌껫지만-_-
왜 바뀔수 있는지 궁금하네요..
음 그리고 이러한 스택구조에 관한 문서는 어떤걸 참조하면될까요? @.@
Forums:
오버플로우에 의한 보안 취약점을 보완하기 위해 바뀝니다.gcc의
오버플로우에 의한 보안 취약점을 보완하기 위해 바뀝니다.
gcc의 경우 2.95이후부터 확 바꼈던걸로 기억을 합니다.
만약에
이런 코드는 예전에는
이런 식이었지만, gcc 3.x이라면
이런식이 됐습니다.
물론 사용할때는 상대주소로 별 신경 안쓰고 사용하면 됩니다.
로컬이라면 몰라도 리모트 오버플로우 공격에는 더 안전할 수 있습니다.
다른 이유가 또 있는지는 모르겠습니다 :)
(컴파일러에 따른 스택 변화만 언급했습니다)
댓글 달기