sonysame 2016. 10. 30. 22:19


argv[1][47]=\xbf이면 안된다.

argv[1][47]=\x40이면 안된다.


strncpy를 써서 argv[1]의 48자만 buffer에 넣어요!


FAKE EBP를 쓰자!

ebp부분에 buffer-4 ret부분에 lev-ret 가젯을 넣는다.


그러면 argv[2]을 통해 쉘코드를 넣을 건데,,

argv[2]=AAAA+쉘 주소+NOP+쉘코드


ebp에 들어가는 buffer-4가 AAAA이 부분이 되는 것이다.







2번째 방법

system 함수 이용





system함수주소+AAAA+/bin/sh/주소 +A*28+"buffer-4byte주소"+"lev-ret gadget부분

하지만, 주소가 정확히 맞지 않는다.