Developer knowledge network · moderated exchange

UnreliableCode қауымдастығы

Әзірлеушілерді зерттеу, кері инженерия және кодтау қауымдастығы

Knowledge indexТірі
4Categories
919Threads
2.8KЖазбалар
Analysis

Executable Binary Layout: Comparing ELF Header Tables vs Windows PE/COFF Format [StackOverflow Architecture Guide]

llvm_compiler_dev
LLVM & Clang Hacker
MEMBER
Өкіл: 139
Қосылу күні: Jul 2018
Хабарламалар: 21
Рахмет: 15
1 ай бұрын · Jul 24, 2026 12:54 PM
#1

Key structural differences between Linux ELF and Windows PE executables:

  • ELF (Executable and Linkable Format):
    • ELF Header -> Program Header Table (Segments: PT_LOAD, PT_DYNAMIC) -> Section Header Table (.text, .rodata, .bss).
    • Dynamic linking uses Global Offset Table (GOT) and Procedure Linkage Table (PLT).
  • PE/COFF (Portable Executable):
    • DOS Header (MZ) -> PE Header (PE\0\0) -> Optional Header -> Section Table (.text, .rdata, .pdata).
    • Dynamic linking uses Import Address Table (IAT) populated by Windows loader.
memory_model_mook
Low-Level C Veteran
MEMBER
Өкіл: 163
Қосылу күні: Jan 2019
Хабарламалар: 11
Рахмет: 33
1 ай бұрын · Jul 24, 2026 4:58 PM
#2

Great comparative analysis. Both achieve similar goals with different metadata organizations.

vtable_slayer
Senior Reverser
MEMBER
Өкіл: 215
Қосылу күні: Mar 2018
Хабарламалар: 86
Рахмет: 61
1 ай бұрын · Jul 25, 2026 12:28 AM
#3

Understanding the GOT/PLT lazy binding mechanism is vital for Linux binary analysis.