간단한 hello world를 만든다음. gcc -S hello.c 하고 hello.s를 보면....
movl $0 %eax subl %eax , %esp
가 있습니다. 보시면 아시겠지만 아무런 의미없는 동작입니다. 왜 이런 작업을 해주어야 하는지 모르겠습니다. 아니면 gcc가 최적화 코드를 만드지 못하는것일런지요......
음 이건 전에 잠깐 언급됬었던 기억이 있는 듯;; 한데;;
2.95 이후로 gcc 의 스택구조가 바뀌었다고 합니다.
-mpreferred-stack-boundary=2 로 옵션을 주고 컴파일 해보시면 아마도 원하는 결과가 나올 듯 한데..
저도 정확한 이유는 모르겠습니다.
gcc 3 대로 넘어가면서 스택구조를 바꿨다는 말밖에 못들어서 :oops:
아시는분 답변좀 부탁드릴께요~
---------------------------------------------------------------------------http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
BOF 공격에 대비해서 스택구조가 바뀐게 아닌가요?
BP값을 알면 쉽게 리턴값을 유추할 수 있기 때문이겠죠
엇.. 저도 그렇게 알고있었다가 한참 전 쓰레드에서 그렇데 답변 달고.. 아니라는 소리에 자료를 찾아보다가 못찾아서 잘못 알았나 보다 하고 있었는데 그게 맞나보군요 :D
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
음 이건 전에 잠깐 언급됬었던 기억이 있는 듯;; 한데;;
음 이건 전에 잠깐 언급됬었던 기억이 있는 듯;; 한데;;
2.95 이후로 gcc 의 스택구조가 바뀌었다고 합니다.
-mpreferred-stack-boundary=2 로 옵션을 주고 컴파일 해보시면 아마도 원하는 결과가 나올 듯 한데..
저도 정확한 이유는 모르겠습니다.
gcc 3 대로 넘어가면서 스택구조를 바꿨다는 말밖에 못들어서 :oops:
아시는분 답변좀 부탁드릴께요~
---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
BOF 공격에 대비해서 스택구조가 바뀐게 아닌가요?BP값을 알면
BOF 공격에 대비해서 스택구조가 바뀐게 아닌가요?
BP값을 알면 쉽게 리턴값을 유추할 수 있기 때문이겠죠
엇.. 저도 그렇게 알고있었다가 한참 전 쓰레드에서 그렇데 답변 달고..
엇.. 저도 그렇게 알고있었다가 한참 전 쓰레드에서 그렇데 답변 달고.. 아니라는 소리에 자료를 찾아보다가 못찾아서 잘못 알았나 보다 하고 있었는데 그게 맞나보군요 :D
---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
댓글 달기