ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.