Skip to content

Instantly share code, notes, and snippets.

@roblabla
Created January 6, 2019 18:50
Show Gist options
  • Save roblabla/9c237e37d6e7df5b054cb88f7300e947 to your computer and use it in GitHub Desktop.
Save roblabla/9c237e37d6e7df5b054cb88f7300e947 to your computer and use it in GitHub Desktop.
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .debug_info PROGBITS 00000000 0000d4 16005a 00 0 0 1
[ 2] .debug_abbrev PROGBITS 00000000 16012e 012c8c 00 0 0 1
[ 3] .debug_line PROGBITS 00000000 172dba 058e98 00 0 0 1
[ 4] .debug_str PROGBITS 00000000 1cbc52 095902 01 MS 0 0 1
[ 5] .debug_ranges PROGBITS 00000000 261554 033f08 00 0 0 1
[ 6] .comment PROGBITS 00000000 29545c 000012 01 MS 0 0 1
[ 7] .debug_pubnames PROGBITS 00000000 29546e 04642b 00 0 0 1
[ 8] .debug_frame PROGBITS 00000000 2db89c 0143e4 00 0 0 4
[ 9] .debug_loc PROGBITS 00000000 2efc80 09589c 00 0 0 1
[10] .debug_macinfo PROGBITS 00000000 38551c 000086 00 0 0 1
[11] .debug_pubtypes PROGBITS 00000000 3855a2 04a512 00 0 0 1
[12] .symtab SYMTAB 00000000 3cfab4 002b40 10 14 501 4
[13] .shstrtab STRTAB 00000000 3d25f4 00015c 00 0 0 1
[14] .strtab STRTAB 00000000 3d2750 0099de 00 0 0 1
[15] .text PROGBITS 00000000 3dd000 01f7d6 00 AX 0 0 16
[16] .rodata PROGBITS 00020000 3fd000 16f704 00 AM 0 0 32
[17] .kernel_caps PROGBITS 0018f704 56c704 000024 00 A 0 0 4
[18] .debug_gdb_scripts PROGBITS 0018f728 56c728 000022 01 AMS 0 0 1
[19] .hash NOBITS 0018f74a 56c74a 000000 00 A 0 0 1
[20] .dynsym NOBITS 0018f74a 56c74a 000000 00 A 0 0 1
[21] .dynstr NOBITS 0018f74a 56c74a 000000 00 A 0 0 1
[22] .rela.dyn NOBITS 0018f74a 56c74a 000000 00 A 0 0 1
[23] .kernel_ioports NOBITS 0018f74a 56c74a 000000 00 A 0 0 1
[24] .eh_frame PROGBITS 0018f74c 56c74c 00006c 00 A 0 0 4
[25] .eh_frame_hdr NOBITS 0018f7b8 56c7b8 000000 00 A 0 0 1
[26] .gcc_except_table NOBITS 0018f7b8 56c7b8 000000 00 A 0 0 1
[27] .gnu_extab NOBITS 0018f7b8 56c7b8 000000 00 A 0 0 1
[28] .debug_all NOBITS 0018f7b8 56c7b8 23c4f0 00 A 0 0 1
[29] .data PROGBITS 003cbca8 56cca8 000020 00 WA 0 0 4
[30] .eh_frame NOBITS 003cbcc8 56ccc8 000000 00 WA 0 0 1
[31] .gnu_extab NOBITS 003cbcc8 56ccc8 000000 00 WA 0 0 1
[32] .gcc_except_table NOBITS 003cbcc8 56ccc8 000000 00 WA 0 0 1
[33] .dynamic NOBITS 003cbcc8 56ccc8 000000 00 WA 0 0 1
[34] .bss NOBITS 003cbcc8 56ccc8 000030 00 WA 0 0 4
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x3dd000 0x00000000 0x00000000 0x1f7d6 0x1f7d6 R E 0x1000
LOAD 0x3fd000 0x00020000 0x00020000 0x16f7b8 0x3abca8 R 0x1000
LOAD 0x56cca8 0x003cbca8 0x003cbca8 0x00020 0x00020 RW 0x1000
LOAD 0x56ccc8 0x003cbcc8 0x003cbcc8 0x00000 0x00030 RW 0x1000
DYNAMIC 0x56ccc8 0x003cbcc8 0x003cbcc8 0x00000 0x00000 RW 0x1
Section to Segment mapping:
Segment Sections...
00 .text
01 .rodata .kernel_caps .debug_gdb_scripts .hash .dynsym .dynstr .rela.dyn .kernel_ioports .eh_frame .eh_frame_hdr .gcc_except_table .gnu_extab .debug_all
02 .data
03 .eh_frame .gnu_extab .gcc_except_table .dynamic .bss
04 .eh_frame .gnu_extab .gcc_except_table .dynamic
ENTRY(start)
OUTPUT_FORMAT(elf32-i386)
PHDRS
{
/*headers PT_PHDR PHDRS;
interp PT_INTERP;*/
text PT_LOAD FLAGS(5) /* Read | Execute */;
rodata PT_LOAD FLAGS(4) /* Read */;
data PT_LOAD FLAGS(6) /* Read | Write */;
bss PT_LOAD FLAGS(6) /* Read | Write noalloc */;
dyn PT_DYNAMIC;
}
SECTIONS
{
.debug_info 0 : {
*(.debug_info .gnu.linkonce.wi.*)
} :NONE
.debug_abbrev 0 : {
*(.debug_abbrev)
}
.debug_line 0 : {
*(.debug_line .debug_line.* .debug_line_end)
}
.debug_str 0 : {
*(.debug_str)
}
.debug_ranges 0 : {
*(.debug_ranges)
}
.debug_rnglists 0 : {
*(.debug_rnglists)
}
. = 0;
.text : {
__text_start = .;
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
__text_end = .;
} :text
. = ALIGN(0x1000);
.rodata : { *(.rodata .rodata.*) } :rodata
.hash : { *(.hash) } :rodata
.dynsym : { *(.dynsym .dynsym.*) } :rodata
.dynstr : { *(.dynstr .dynstr.*) } :rodata
.rela.dyn : { *(.rela.dyn) } :rodata
.eh_frame : ONLY_IF_RO {
HIDDEN(__eh_frame_start = .);
KEEP (*(.eh_frame)) *(.eh_frame.*)
HIDDEN(__eh_frame_end = .);
} :rodata
.eh_frame_hdr : {
HIDDEN(__eh_frame_hdr_start = .);
*(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*)
HIDDEN(__eh_frame_hdr_end = .);
} :rodata
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } :rodata
.gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } :rodata
.debug_all : {
__debug_info_start = .;
. += SIZEOF(.debug_info);
__debug_info_end = .;
__debug_abbrev_start = .;
. += SIZEOF(.debug_abbrev);
__debug_abbrev_end = .;
__debug_str_start = .;
. += SIZEOF(.debug_str);
__debug_str_end = .;
__debug_ranges_start = .;
. += SIZEOF(.debug_ranges);
__debug_ranges_end = .;
__debug_rnglists_start = .;
. += SIZEOF(.debug_rnglists);
__debug_rnglists_end = .;
}
.data : {
*(.data .data.*)
*(.got .got.*)
*(.got.plt .got.plt.*)
} :data
.eh_frame : ONLY_IF_RW {
HIDDEN(__eh_frame_start = .);
KEEP (*(.eh_frame)) *(.eh_frame.*)
HIDDEN(__eh_frame_end = .);
} :data
.gnu_extab : ONLY_IF_RW { *(.gnu_extab*) } :data
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } :data
.dynamic : {
HIDDEN(__dynamic_start = .);
*(.dynamic)
} :data :dyn
.bss :
{
BSS_START = .;
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.
FIXME: Why do we need it? When there is no .bss section, we don't
pad the .data section. */
. = ALIGN(. != 0 ? 64 / 8 : 1);
BSS_END = .;
} :bss
/* Kernel caps and ioports access control */
.kernel_caps : {
KEEP(*(.kernel_caps .kernel_caps.*))
} :NONE
.kernel_ioports : {
KEEP(*(.kernel_ioports .kernel_ioports.*))
} :NONE
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
/*.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }*/
/*.debug_abbrev 0 : { *(.debug_abbrev) }*/
/*.debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }*/
.debug_frame 0 : { *(.debug_frame) }
/*.debug_str 0 : { *(.debug_str) }*/
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
/*.debug_ranges 0 : { *(.debug_ranges) }*/
/* DWARF 4 */
.debug_types 0 : { *(.debug_types) }
/* DWARF 5 */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
/*.debug_rnglists 0 : { *(.debug_rnglists) }*/
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.debug_sup 0 : { *(.debug_sup) }
.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment