본문 바로가기

리버싱/리눅스

심볼 파일? 심볼 테이블?

심볼?

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

윈도우의 심볼파일

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

 - 전역변수 이름

 - 지역변수 이름

 - 함수 이름

 - Entry Point 주소

 - FPO data

 - Source-line 번호

 

 

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

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

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