ELF Tutorial

Posted By: IrGens

ELF Tutorial
.MP4, AVC, 1280x720, 30 fps | English, AAC, 2 Ch | 4h 58m | 2.56 GB
Instructor: Qi Liang

Learn ELF by writing your own ELF reader program

What you'll learn

  • Learn ELF (Executable and Linking Format) and its file format
  • Learn to understand the individual sections like symtab, and segments in ELF file
  • Learn how symbol hashing, symbol versioning and dynamic linking work within ELF file
  • Develop a program reading ELF file and showing its contents

Requirements

  • Basic knowledge of Linux or Unix, and C language.
  • Good to have a Linux environment, so that you can follow the course to develop an ELF reader program.

Description

This course explains the format of the ELF (Executable and Linking Format) file, which is the file format for almost all executable files and shared object files in Linux/Unix world.

By taking this course, you will learn to understand

1. ELF file format, like ELF header, program header table, and section header table;
2. The contents (the individual sections) in ELF file, like symbol section, dynamic section, relocation section, string table section, hash section, GNU versioning section, and so on;
3. How ELF file plays in dynamic linking (including variable relocation and function relocation);
4. How ELF file supports multiple versions of symbol;
5. How ELF file supports efficient symbol lookup;
6. Some common tools reading ELF file, like file, readelf, and objdump.

As part of the course, you will also learn to develop your own ELF reader program, enriching your understanding of ELF file format and contents. You can also extend this program for your future ELF file analysis or processing.

When you finish this course, you will have good knowledge and understanding about ELF file, especially if you work on the areas like Linux kernel, compiler/linker technology, performance analysis, and so on. It's also good for who with strong interests in how program is constructed and executes on Linux/Unix.

Who this course is for:

Linux/Unix developer or whoever with interests in ELF