gdb로 디버깅을 진행할 때, breakpoint를 설정해 주어야만 해당 위치에서 멈추고 디버깅을 시작할 수 있다.
물론 이 부분은 b main
을 통해서 해결할 수 있는데, 문제는 파일이 stripped 된 상태인 경우이다.
이 경우, 모든 debugging symbol이 삭제된 상태라 main이라는 함수의 이름만으로는 breakpoint를 설정할 수 없다.
gdb에서 지원해주는 명령어가 하나 있는데, 바로 starti
라는 명령어이다.
로더의 _start()
지점을 breakpoint로 해 멈추게 해 준다.
그 후에 info file
을 입력하게 되면, 파일의 entry point가 출력된다.
이 주소를 breakpoint로 삼고 분석을 시작하면 된다.