To see the header of a binary, in our example "ls", we have to use the -p command of the objdump tool.
Let's try it:
$ objdump -p /bin/ls
Result:
/bin/ls: file format elf32-i386 Program Header: PHDR off 0x00000034 vaddr 0x08048034 paddr 0x08048034 align 2**2 filesz 0x00000100 memsz 0x00000100 flags r-x INTERP off 0x00000134 vaddr 0x08048134 paddr 0x08048134 align 2**0 filesz 0x00000013 memsz 0x00000013 flags r-- LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12 filesz 0x0001a8d0 memsz 0x0001a8d0 flags r-x LOAD off 0x0001a8d0 vaddr 0x080638d0 paddr 0x080638d0 align 2**12 filesz 0x00001b8e memsz 0x00001b8e flags rw- DYNAMIC off 0x0001ae44 vaddr 0x08063e44 paddr 0x08063e44 align 2**2 filesz 0x000000e8 memsz 0x000000e8 flags rw- NOTE off 0x00000148 vaddr 0x08048148 paddr 0x08048148 align 2**2 filesz 0x00000044 memsz 0x00000044 flags r-- EH_FRAME off 0x000177a8 vaddr 0x0805f7a8 paddr 0x0805f7a8 align 2**2 filesz 0x000006ec memsz 0x000006ec flags r-- STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2 filesz 0x00000000 memsz 0x00000000 flags rw- Dynamic Section: NEEDED libselinux.so.1 NEEDED librt.so.1 NEEDED libcap.so.2 NEEDED libacl.so.1 NEEDED libc.so.6 INIT 0x08049558 FINI 0x0805bb4c GNU_HASH 0x0804818c STRTAB 0x08064e40 SYMTAB 0x080481f4 STRSZ 0x000005e3 SYMENT 0x00000010 DEBUG 0x00000000 PLTGOT 0x08063f78 PLTRELSZ 0x00000330 PLTREL 0x00000011 JMPREL 0x08049228 REL 0x08049198 RELSZ 0x00000090 RELENT 0x00000008 VERNEED 0x080490c8 VERNEEDNUM 0x00000003 VERSYM 0x08048fc8 0x6ffffef9 0x080489e4 0x6ffffdf7 0x000000b4 0x6ffffef8 0x08048a98 0x6ffffdf6 0x00000354 Version References: required from librt.so.1: 0x0d696912 0x00 09 GLIBC_2.2 required from libacl.so.1: 0x05822450 0x00 08 ACL_1.0 required from libc.so.6: 0x09691a73 0x00 11 GLIBC_2.2.3 0x0d696914 0x00 10 GLIBC_2.4 0x0d696913 0x00 07 GLIBC_2.3 0x09691974 0x00 06 GLIBC_2.3.4 0x0d696911 0x00 05 GLIBC_2.1 0x09691f73 0x00 04 GLIBC_2.1.3 0x0d696912 0x00 03 GLIBC_2.2 0x0d696910 0x00 02 GLIBC_2.0
Add new comment