리버싱/리눅스

심볼 파일? 심볼 테이블?

parktest0325 2020. 2. 9. 20:57

심볼?

어플리케이션, 라이브러리, 드라이버, OS의 링킹 작업에서 exe와 dll 파일을 생성하는 linker는 많은 수의 symbol 파일을 만들어낸다. 

윈도우의 심볼파일

symbol 파일은 바이너리가 실행되기 위해 필요한것은 아니지만, 디버깅 과정에서 유용하게 사용되는 정보를 포함한다.

 - 전역변수 이름

 - 지역변수 이름

 - 함수 이름

 - Entry Point 주소

 - FPO data

 - Source-line 번호

 

 

ELF 형식에서는 프로그램 내부 심볼 테이블이라는 영역에 심볼정보가 저장된다 

strip을 통해 오브젝트파일에서 심볼을 삭제할 수 있다. 

심볼이 없으면 디버깅 시 전역변수 나 함수 이름이 보이지 않는다.