/-------------------/ 스택의 높은 주소

|                          |

|  return address(ret)|      (4바이트)

|                          |

---------------------

|                          |

| saved frame pointer|      (4바이트)

|                          |

---------------------

|                          |

|     argv[1]           |      (40바이트)

|                          |

--------------------- 스택의 낮은 주소


argv로 입력받을 때 ret까지 오버플로우 시켜서 ret를 건드려야 하는데 \xbf는 안 되니깐

스택 영역에 쉘을 올리는 건 불가능.






결국 RTL(Return To Library)로 공략할 생각함.

system함수의 주소와 /bin/sh의 주소까지 알아냄.



페이로드는 ./bugbear `python -c 'print "\x90"*44 + system함수의 주소 + "4바이트 더미값" + /bin/sh의 주소




궁금한건 system함수의 주소가 ret에 위치해 있으니깐 main함수가 끝날 때 system함수로 복귀되면서 실행시키는 건 이해되는데

그 뒤에 4바이트 더미값과 /bin/sh주소는 이해가 안 감...