PIE 적용된 바이너리에서 main 함수 시작점 찾기

dandb3·2024년 4월 19일
0

pwnable 팁들

목록 보기
5/5

gdb로 디버깅을 진행할 때, breakpoint를 설정해 주어야만 해당 위치에서 멈추고 디버깅을 시작할 수 있다.

물론 이 부분은 b main 을 통해서 해결할 수 있는데, 문제는 파일이 stripped 된 상태인 경우이다.
이 경우, 모든 debugging symbol이 삭제된 상태라 main이라는 함수의 이름만으로는 breakpoint를 설정할 수 없다.

gdb에서 지원해주는 명령어가 하나 있는데, 바로 starti라는 명령어이다.
로더의 _start() 지점을 breakpoint로 해 멈추게 해 준다.

그 후에 info file을 입력하게 되면, 파일의 entry point가 출력된다.
이 주소를 breakpoint로 삼고 분석을 시작하면 된다.

profile
공부 내용 저장소

0개의 댓글