egghunter. 코드를 분석해보면 환경변수가 저장되어있는 부분을 모두 0으로 초기화 시킨다.
따라서 환경변수에 쉘코드를 저장하는 방식을 막는것을 알 수 있다.
또한 argv[1][47]이 \xbf이여야한다.
argv[1]로 주었던, "A"*47+\xbf를 확인할 수 있고, 그 윗 영역인 env 부분은 모두 0으로 초기화되어있다.
환경변수를 사용할 수 없으니 쉘코드를 argv로 전달해주면 된다.
argv영역은 초기화 하지 않으므로 argv[2]로 주었던 \x90 *100 + 쉘코드를 찾을 수 있다.
주소값 0xbffffb8c를 사용하여 ret을 덮어보자.
다음단계로 넘어가보자.
06. wolfman -> darkelf (0) | 2020.03.09 |
---|---|
05. orc -> wolfman (0) | 2020.03.09 |
03. cobolt -> goblin (0) | 2020.03.09 |
02. gremlin -> cobolt (0) | 2020.03.09 |
01. gate -> gremlin (0) | 2020.03.09 |
댓글 영역