Flashcards 9 Flashcards
Students 0 Students
Sprache English
Level University
Created / Updated 21.06.2019 / 21.06.2019
Licencing Not defined
0 Exact answers 9 Text answers 0 Multiple-choice answers
Close window

Describe the memory layout of a 32 bit system inluding the EIP and ESP pointer.

Licencing: Not defined
Close window

What are the charecteristics of the stack?


  • There is one contiguous memory region containing the stack for the process
  • LIFO - Last in, First Out
  • Contains funtion local variables
  • Also contains: Saved Instruction Pointer (SIP)
  • Current function adds data to the top (bottom) of the stack
Close window

What are the charecteristics of the heap?


  • There is on contiguous memory region containing the heap
  • Memory allocator returns specific pieces of the memory region
  • For malloc()
  • Alos contains: heap management data
Close window

What is stored in the code region in memory?

Code region contains:

  • Compiled program code
Close window

What is the ELF format, and name 3 types.

Programs are stored in ELF files

ELF: Executable and Linkable Format

  • Like COFF, PE (EXE), ....

ELF types:

  • ET_EXEC: Executable File
  • ET_REL: Relocatable File
  • ET_DYN: Shared Object File

ELF "views"

  • Sections
  • Segments
Close window

Describe the ELF Format how is it structured?

Licencing: Not defined

Sturcture of ELF file from top to bottom:

  1. ELF Header
  2. Program Header Table (contains the location of sections)
  3. Sections (are contained in segments)
  4. Section Header Table (contains locationn of sections
Close window

In the ELF format what can be contained in the sections?


  • .text: Executable instructions
  • .bss: Unitialized data (usualy the heap)
  • .data: initialized data
  • .rodata: Read-Only data
  • .got: Global Offset Table
  • .plt: Prcedure Linkage Table
  • .init / .fini: initialiyation instructions ("glibc")
Close window

How is an ELF file loaded what is loaded into the stack, heap and code block?

Licencing: Not defined

.plt, .text, .init get written into code block

.got, .data, .bss is written into the heap

unalocated space is the stack.