리버싱/리눅스
심볼 파일? 심볼 테이블?
parktest0325
2020. 2. 9. 20:57
심볼?
어플리케이션, 라이브러리, 드라이버, OS의 링킹 작업에서 exe와 dll 파일을 생성하는 linker는 많은 수의 symbol 파일을 만들어낸다.
윈도우의 심볼파일
symbol 파일은 바이너리가 실행되기 위해 필요한것은 아니지만, 디버깅 과정에서 유용하게 사용되는 정보를 포함한다.
- 전역변수 이름
- 지역변수 이름
- 함수 이름
- Entry Point 주소
- FPO data
- Source-line 번호
ELF 형식에서는 프로그램 내부 심볼 테이블이라는 영역에 심볼정보가 저장된다
strip을 통해 오브젝트파일에서 심볼을 삭제할 수 있다.
심볼이 없으면 디버깅 시 전역변수 나 함수 이름이 보이지 않는다.