main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx)
메인 함수 첫 호출 부분에 위와 같은 코드 3줄을 모르겠습니다 ㅡㅡ;
%esp + 4 에 도대체 뭐가 있는것이죠?
음. 혹시 argc 가 아닐지. ----------------------- 과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라. 그리고 내일을 알고 싶으냐? 그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동 "만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
예전에 봤던 기억이 나는 군요...
Redhat 계열에서 그렇게 나오는 걸로 알고 있구요.. 다른 배포판은 어떤지 모르겠습니다. 본지가 워낙 오래되서.. ^^;;
스택 오버플로우 공격을 예방하기 위한 Moving Stack이라는 기법(이름은 정확하지가 않네요)입니다.
위와 같이 했을 경우 main 함수에서 return하기 위한 주소와 로컬 변수로 사용하기 위한 공간 사이에 16byte 내에서 몇 바이트가 될지 모르는 공간이 생기게 되져..
그렇게 해서 return address의 offset을 runtime 마다 변경하기 위한 코드 입니다.
자세한 내용은 StackOverflow 관련 자료를 찾아보시면 자세히 알 수 있으실 껍니다.
텍스트 포맷에 대한 자세한 정보
<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]
음. 혹시 argc 가
음. 혹시 argc 가 아닐지.
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
뭐가 있을지 모르기 때문에 그렇게 쓰는 겁니다.. ^^;
예전에 봤던 기억이 나는 군요...
Redhat 계열에서 그렇게 나오는 걸로 알고 있구요.. 다른 배포판은 어떤지 모르겠습니다. 본지가 워낙 오래되서.. ^^;;
스택 오버플로우 공격을 예방하기 위한 Moving Stack이라는 기법(이름은 정확하지가 않네요)입니다.
위와 같이 했을 경우 main 함수에서 return하기 위한 주소와 로컬 변수로 사용하기 위한 공간 사이에 16byte 내에서 몇 바이트가 될지 모르는 공간이 생기게 되져..
그렇게 해서 return address의 offset을 runtime 마다 변경하기 위한 코드 입니다.
자세한 내용은 StackOverflow 관련 자료를 찾아보시면 자세히 알 수 있으실 껍니다.
댓글 달기