완료됨
리눅스 ELF main주소 찾는법

gdb로 ELF 파일 분석해서 disas main을 입력했더니
image.png
이런식으로 떠서 writeup을 봤더니 주소에 직접 bp를 걸고 실행해서 main Entry를 찾던데,
image.png
주소를 어떻게 찾을 수 있나요? start해서 vmmap으로 text섹션에 있는 주소는 알겠던데, 뒤에 나오는 offset값은 어떻게 알 수 있나요?

작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 3
avatar
wyv3rn
무플 방지 위원회장
avatar
wyv3rn
무플 방지 위원회장

결국은 모든 함수는 프롤로그와 에필로그를 가지고 있고 이걸 기준으로 찾을 수 있습니다.
메인 함수에서 사용되는 함수나 문자열 등을 토대로 찾을수도 있고요.
방법이 다양해서 답을 드리기가 조금 어렵네요.

2023.10.09. 21:53
avatar
wyv3rn
무플 방지 위원회장
avatar
wyv3rn
무플 방지 위원회장

네. 보통은 start로 진입 시 start 함수부터 시작할겁니다.
ida와 같은 디버거를 사용하면 어느정도 알아서 추측해사 찾아주기도 하고요.

2023.10.10. 22:35
avatar
keyme
CTF Second Place
avatar
keyme
CTF Second Place

IDA로 ELF 분석하면 원하는 코드 부분의 offset은 쉽게 구할 수 있습니다.

https://velog.io/@silvergun8291/GEF-사용법
그리고 pie와 관련해서 bp 걸고 분석하시려면 위 링크에서 언급된 GEF pie breakpoint 기능 이용하시면 간편합니다.

2023.10.11. 19:52