도전2022

readelf -l dir_static 본문

작업/리눅스

readelf -l dir_static

hotdigi 2010. 2. 19. 20:31
테스트할 파일


(no-static compile) 
# readelf -l dir

Elf file type is EXEC (Executable file)
Entry point 0x8049ae0
There are 9 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x08048034 0x08048034 0x00120 0x00120 R E 0x4
  INTERP         0x000154 0x08048154 0x08048154 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.2]
  LOAD           0x000000 0x08048000 0x08048000 0x15b24 0x15b24 R E 0x1000
  LOAD           0x015f00 0x0805ef00 0x0805ef00 0x003ac 0x01000 RW  0x1000
  DYNAMIC        0x015f14 0x0805ef14 0x0805ef14 0x000d8 0x000d8 RW  0x4
  NOTE           0x000168 0x08048168 0x08048168 0x00044 0x00044 R   0x4
  GNU_EH_FRAME   0x015a5c 0x0805da5c 0x0805da5c 0x0002c 0x0002c R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
  GNU_RELRO      0x015f00 0x0805ef00 0x0805ef00 0x00100 0x00100 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame 
   03     .ctors .dtors .jcr .dynamic .got .got.plt .data .bss 
   04     .dynamic 
   05     .note.ABI-tag .note.gnu.build-id 
   06     .eh_frame_hdr 
   07     
   08     .ctors .dtors .jcr .dynamic .got 




(static compile)
# readelf -l dir_static

Elf file type is EXEC (Executable file)
Entry point 0x8048170
There are 6 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x000000 0x08048000 0x08048000 0xa39b9 0xa39b9 R E 0x1000
  LOAD           0x0a3f90 0x080ecf90 0x080ecf90 0x00910 0x03450 RW  0x1000
  NOTE           0x0000f4 0x080480f4 0x080480f4 0x00044 0x00044 R   0x4
  TLS            0x0a3f90 0x080ecf90 0x080ecf90 0x00018 0x00030 R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
  GNU_RELRO      0x0a3f90 0x080ecf90 0x080ecf90 0x00070 0x00070 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     .note.ABI-tag .note.gnu.build-id .init .text __libc_freeres_fn __libc_thread_freeres_fn .fini .rodata __libc_subfreeres __libc_atexit __libc_thread_subfreeres .eh_frame .gcc_except_table
   01     .tdata .ctors .dtors .jcr .data.rel.ro .got .got.plt .data .bss __libc_freeres_ptrs
   02     .note.ABI-tag .note.gnu.build-id
   03     .tdata .tbss
   04    
   05     .tdata .ctors .dtors .jcr .data.rel.ro .got .got.plt



(no-static compile, statifier)
# readelf -l dir3

Elf file type is EXEC (Executable file)
Entry point 0x805db30
There are 23 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x036000 0x08048000 0x08048000 0x16000 0x16000 R E 0x1
  LOAD           0x04c000 0x0805e000 0x0805e000 0x01000 0x01000 R   0x1
  LOAD           0x04d000 0x0805f000 0x0805f000 0x01000 0x01000 RW  0x1
  LOAD           0x04e000 0x40000000 0x40000000 0x1b000 0x1b000 R E 0x1
  LOAD           0x069000 0x4001b000 0x4001b000 0x01000 0x01000 RW  0x1
  LOAD           0x06a000 0x4001c000 0x4001c000 0x01000 0x01000 RW  0x1
  LOAD           0x06b000 0x4001e000 0x4001e000 0x02000 0x02000 RW  0x1
  LOAD           0x06d000 0x40033000 0x40033000 0x07000 0x07000 R E 0x1
  LOAD           0x074000 0x4003a000 0x4003a000 0x01000 0x01000 R   0x1
  LOAD           0x075000 0x4003b000 0x4003b000 0x01000 0x01000 RW  0x1
  LOAD           0x076000 0x4003c000 0x4003c000 0x13e000 0x13e000 R E 0x1
  LOAD           0x1b4000 0x4017a000 0x4017a000 0x02000 0x02000 R   0x1
  LOAD           0x1b6000 0x4017c000 0x4017c000 0x01000 0x01000 RW  0x1
  LOAD           0x1b7000 0x4017d000 0x4017d000 0x04000 0x04000 RW  0x1
  LOAD           0x1bb000 0x40181000 0x40181000 0x15000 0x15000 R E 0x1
  LOAD           0x1d0000 0x40196000 0x40196000 0x01000 0x01000 R   0x1
  LOAD           0x1d1000 0x40197000 0x40197000 0x01000 0x01000 RW  0x1
  LOAD           0x1d2000 0x40198000 0x40198000 0x03000 0x03000 RW  0x1
  DYNAMIC        0x04cf14 0x0805ef14 0x0805ef14 0x000d8 0x000d8 RW  0x4
  NOTE           0x000168 0x08048168 0x08048168 0x00044 0x00044 R   0x4
  GNU_EH_FRAME   0x015a5c 0x0805da5c 0x0805da5c 0x0002c 0x0002c R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
  GNU_RELRO      0x015f00 0x0805ef00 0x0805ef00 0x00100 0x00100 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame
   01     .ctors .dtors .jcr .dynamic .got
   02     .data .bss
   03    
   04    
   05    
   06    
   07    
   08    
   09    
   10    
   11    
   12    
   13    
   14    
   15    
   16    
   17    
   18     .dynamic
   19    
   20    
   21    
   22    

'작업 > 리눅스' 카테고리의 다른 글

Glibc 2 하우투 학습하기.  (0) 2010.03.11
라이브러리 학습 하자.  (0) 2010.03.01
리눅스 라이브러리 관련 학습  (0) 2010.02.19
linux 웹 서버 만들기  (0) 2010.02.19
putty를 사용하자.  (0) 2010.02.19