orc는 오크인데 orge는 뭘까
오르그??
대놓고 여기여기 바꿨다고 써놨다.
보면 argc가 2여야하고 argv[1]을 마지막에 0으로 초기화한다.
( 다른 장치는 이전 문제와 같으니 생략하자 )
그럼 argv[0] 하나가 남는다.
argv[0]에 "0x90"*200 + "shell code"가 들어가야 한다.
그래서 저 문자열을 포함한 폴더를 하나 만들었다.
저 안에 troll파일을 넣어 분석해보면 argv[0]이 저장되는 위치를 알 수 있다.
0x90909090이 반복되는 부분이 argv[0]이 저장되는 위치이다.
payload는 폴더이름때문에 쓸 수가 없다....
"\x90"*100 + "shellcode" + "\x90"*100으로 바꾸니 됐다.
왜 이건 되고 "\x90"*200 + "shellcode"는 안되나 모르겠다.
***
shellcode에는 \x2f가 없어야 한다.
0x2f는 '/'인데 경로 이름에 들어가면 폴더를 나눠버리기 때문이다.
***