2009년 7월 3일 금요일

ELF file구조 및 readelf 사용법.

ELF file구조
  • ELF file Header
  • Program Header Table
  • Section1
  • Section2
  • ...
  • Section Header Table
- Program Header Table은 오브젝트 파일에서는 optional이다. Program Header는 세그먼트에 대한 정보를 가지고 있는데, 오브젝트 파일은 이러한 정보가 없으므로 Program Header가 필요하지 않다.
- Section Header는 실행파일에서는 optional이다. Section header가 없거나 손상되어도 프로그램의 실행에는 지장이 없으나 이런 파일은 디버거를 사용하여 디버깅을 할 수 없다.

--------------------------------
ELF header
--------------------------------
Program Header 1
-----------------------
Program Header 2
-----------------------
Program Header 3
-----------------------
...
-----------------------
Program Header N
--------------------------------

sections...

--------------------------------
Section Header 1
-----------------------
Section Header 2
-----------------------
...
-----------------------
Section Header M
----------------------------------

readelf사용법
    Usage: readelf elf-file(s)
      Display information about the contents of ELF format files
        Options are:
        • -h Display the ELF file header
        • -l Display the program headers
        • -S Display the sections' header
        • -d Display the dynamic segment (if present)
          부연설명:
          ELF는 unix계열에서 현재 가장 널리 사용되는 실행 파일 포맷이다. a.out과 COFF는 이제 많이 사용되지 않는다. 단, MS Windows계열에서 사용하는 실행 파일 포맷인 PE(Potable Executable) 포맷이 COFF를 약간 수정한것이라고 한다.

          댓글 없음: