Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Inside ELF: Exploring the Core of Executable Files
Rating: 4.1 out of 5(64 ratings)
809 students

Inside ELF: Exploring the Core of Executable Files

Learn about Executable and Linking Format in Linux
Created byLinux Trainer
Last updated 3/2024
English

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

Course content

7 sections63 lectures4h 43m total length
  • Introduction0:49
  • Executable and Linkable Format3:25

    Elf is the executable and linkable format used by Linux for binaries, libraries, and kernel modules, supporting dynamic linking and position independent code across architectures and endianness.

  • Why Learn Details of ELF2:11
  • Compilation Process11:09
  • Changing one character in ELF file4:21

Requirements

  • Familiarity with the Unix/Linux operating system environment.
  • Access to a computer with a Unix/Linux-based operating system for hands-on exercises (recommended but not mandatory).

Description

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

Who this course is for:

  • Software developers interested in understanding the inner workings of executable files.
  • Cybersecurity professionals aiming to enhance their skills in analyzing and securing software binaries.
  • Computer science students seeking to deepen their understanding of low-level programming concepts