-
카테고리
-
세부 분야
보안
-
해결 여부
미해결
어태치 리턴주소
21.07.13 08:31 작성 조회수 200
0
쉘코드생성, 리눅스 어태치 실습을 하던도중 궁금한점이 생겨 질문을 합니다, 왼쪽은 pause()후 gdb를이용하여 어태치한 결과이고 오른쪽은 일반적으로 #gdb ./stack5 를 한것입니다. 둘은 같은 프로그램이고 ASLR옵션도 꺼준 상태인데 return 주소가 다르게 나옵니다. 왜 이렇게 나오는지 알 수 있을까요? pwn 을 사용하게되면 이렇게 되는것인가요?? return 주소가 변경되는 다른 이유는 어떤것이 있나오?
답변을 작성해보세요.
0
gasbugs
2021.07.14
안녕하세요 저도 관련된 부분에 대해 분석해보지는 않아서 몇 가지 찾아보았습니다.
찾아보니 좋은 글이 있어서 첨부드립니다.
여기에서 스택 주소에 영향을 주는 데는 다음과 같은 사항이 있다고 합니다.
- gdb는 절대 경로 이름으로 프로그램을 호출하므로 argv 배열이 더 큽니다.
- gdb는 두 개의 환경 변수를 설정(또는 이 경우 추가)합니다. 이것은 readline/shell.c:sh_set_lines_and_columns()에서 수행됩니다. 따라서 환경 어레이가 더 큽니다.
참고 URL: https://stackoverflow.com/questions/32771657/gdb-showing-different-address-than-in-code
감사합니다.
답변 1