-
ELF 구조Hack/Reversing 2015. 2. 13. 13:04
ELF는 Executable and Linkable Format의 약자로, 프로그램을 다시짜고, 재컴파일해야할 필요성을 없앴다.
ELF Section
.text
- 프로그램의 텍스트 또는 실행가능한 명령어들을 담고있다. 해당 섹션은 EXE의 섹션과 동일한 역할을한다.
Type: SHT_PROGBITS
Flags: SHT_ALLOC + SHT_EXECINSTR
.data
-프로그램 메모리영역에 제공되는 초기화된 변수(데이터)들을 담고있다.
Type: SHT_PROGBITS
Flags: SHT_ALLOC + SHT_WRITE
.rodata
-프로세스의 이미지에서 쓰기 불가능한 세그먼트에 사용되는 읽기전용 데이터들을 담고있다.
.bss
- 프로그램의 메모리 영역에 제공되는 초기화되지않은 변수(데이터)들을 담고있다. 목적파일내에 아무런공간도 차지하지않는다.
.rel.text , .rel.data , .rel.rodata
-재배치 정보를 담고있다.
.symtab
-심볼 테이블을 담고있다.
.strtab
-문자열을 담고있는데 대부분 심볼테이블과 관련되어있는 이름을 나타내는 문자열들이다.
.init
-프로세스의 초기화에 사용될 실행명령어들을 가지고있다.
-프로그램이 실행될때 메인을 실행하기전 해당 섹션에 존재하는 명령을 먼저 실행한다.
.fini
- 프로세스의 종료코드에 제공될 실행명령어들을 담고있다.
.interp
- 프로그램의 분석기의 경로명을 가지고있다.
.debug
-심볼릭 디버깅에 필요한 정보들을 담고있다(gdb)
.line
-소스 프로그램과 기계어 코드와의 연결을 나타내는 심볼릭 디버깅을 위한 라인넘버를가지고있다.
.commnt
- 버전제어정보
.got
-전역 옵셋 테이블
.plt
-프로시저 연결 테이블
.note
-여분의 정보
'Hack > Reversing' 카테고리의 다른 글
ELF Header 문서 (0) 2015.02.15 64BIT Executable and Linkable Format (0) 2015.02.15 Stack Empty Value (0) 2015.02.09 Stack POP (0) 2015.02.09 Stack Full Checking (0) 2015.02.09