Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Inside ELF: Exploring the Core of Executable Files

via Udemy

Overview

Learn about Executable and Linking Format in Linux

What you'll learn:
  • In-depth understanding of the ELF (Executable and Linkable Format) file structure.
  • Analysis techniques to dissect ELF files and interpret their contents.
  • Hands-on experience with real-world examples and tutorials to solidify their knowledge of ELF file format.
  • Write a very minimal ELF file

This comprehensive course will take you step-by-step through engaging video tutorials and teach you all the essential concepts and topics you need to understand about Linux Executable Format: ELF in Linux

ELF is the standard binary format for executables, object code, shared libraries, and core dumps on Unix-like operating systems. In this course, we unravel the intricacies of ELF, exploring its structure, sections, headers, and dynamic linking mechanisms.


What will you learn in this course

  • Learn the inner details of ELF file

  • Understand different stages of Compilation Process (Pre-processing, compiling, Assembling, Linking)

  • Understand what is machine code or operation code (opcode)

  • Write ARM assembly code and run on QEMU

  • Understand syntax of Assembly code (Label, instruction, comment, assembler directives)

  • Different sections: .text, .data, .bss

  • Viewing ARM Registers in QEMU Monitor Interface

  • Assembler directives (.byte, .asciiz, .ascii, .align, .global, .text, .data)

  • Viewing symbol table and understand symbol resolution

  • Understand the role of assembler and linker

  • Relocation operation performed by Linker (Section Merging and Section Placement)

  • What is a Linker Script and write a simple linker script file and use it while compiling

  • Run time addresses and Load time addresses

  • Creating sections from linker script

  • Writing a startup code for copying data into RAM, bss and initializing stack

  • Understanding ELF Header with readelf command

  • What happens if i change first byte of ELF file

  • Generate core dump and verify ELF Header

  • Understand different members of ELF Header

  • Changing different members of ELF Header

  • Understand who calls main() using gdb and _start()

  • Writing a ELF Header from C Code

  • Sections vs Segments

  • Linker and Loader view of ELF file

  • Different readelf commands (readelf -h , readelf -WS, readelf -Wl, readelf -a..)

  • Understand various fields of section header and program header

  • dumpelf command to dump ELF structures in C structure format

  • Write a C Code to print some fields of ELF Section Header

  • What happens when we compile a user space program with debugging information (-g) inside an ELF file

  • Use 'size' command to get size of text, data and bss sections

  • Get deeper understanding of symbol table and what happens when you run 'strip' command

  • Writing a very minimal ELF executable file with size less than 200KB



There's no risk either!

This course comes with a 30 day money back guaranteed!. If you are not satisfied with the course, you'll get your money back

So what are you waiting for, enroll now and take the next step in becoming an expert in ELF file format

Syllabus

  • Introduction
  • Bare Metal Arm Programming
  • ELF Header
  • ELF Section
  • ELF Program Headers
  • Minimal ELF File
  • Notes

Taught by

Linux Trainer

Reviews

4.3 rating at Udemy based on 57 ratings

Start your review of Inside ELF: Exploring the Core of Executable Files

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.