|  | 
|  | 1 | +Training Material "Anatomy of Buffer Overflows and Low Level Security" | 
|  | 2 | +====================================================================== | 
|  | 3 | + | 
|  | 4 | +Overview | 
|  | 5 | +-------- | 
|  | 6 | + | 
|  | 7 | +This repository contains presentation slides and training examples for | 
|  | 8 | +learning about exploitation of stack buffer overflows on Linux systems. The | 
|  | 9 | +target audience is beginners with existing basic knowledge about C programming | 
|  | 10 | +and Linux. The training covers the following topics: | 
|  | 11 | + | 
|  | 12 | +- Using `gdb` for debugging, inspecting buffer overflows during runtime and | 
|  | 13 | +  interacting with the program also on assembler level. | 
|  | 14 | +- A basic introduction to assembler programming on `i386` / `x86_64` | 
|  | 15 | +  processors. | 
|  | 16 | +- Explanation of a computer's address space, the function and management of | 
|  | 17 | +  stack and heap memory, how function calls are setup, how system calls are | 
|  | 18 | +  setup and related topics. | 
|  | 19 | +- Typical techniques to exploit a stack buffer overflow with the aim of | 
|  | 20 | +  arbitrary code execution. Various examples of growing complexity help to get | 
|  | 21 | +  in touch with the topic step by step. | 
|  | 22 | +- Modern protection measures to prevent stack buffer exploits are discussed. | 
|  | 23 | + | 
|  | 24 | +The examples are all tailored towards running them on current openSUSE Linux | 
|  | 25 | +distributions. | 
|  | 26 | + | 
|  | 27 | +The material is used for a 3 to 4 day training for trainees in computer | 
|  | 28 | +science. Due to the advanced nature of the topics also more experienced | 
|  | 29 | +engineers that aren't familiar with low level programming and buffer overflows | 
|  | 30 | +can profit at least from parts of the training. | 
|  | 31 | + | 
|  | 32 | +How to Build | 
|  | 33 | +------------ | 
|  | 34 | + | 
|  | 35 | +This presentation is based on `asciidoc`. Installing it should be enough to | 
|  | 36 | +successfully run `make`. The result will be a single HTML file containing also | 
|  | 37 | +embedded images. The presentation can be opened in a regular web browser. | 
|  | 38 | + | 
|  | 39 | +Licensing | 
|  | 40 | +--------- | 
|  | 41 | + | 
|  | 42 | +The content of this repository (the presentation slides, PNG images and their | 
|  | 43 | +SVG sources as well as all example code and its documentation) are available | 
|  | 44 | +under the Creative Commons license BY-NC-SA 4.0. See the `LICENSE` file in the | 
|  | 45 | +repository or [online][1]. | 
|  | 46 | + | 
|  | 47 | +[1]: https://creativecommons.org/licenses/by-nc-sa/4.0 | 
|  | 48 | + | 
|  | 49 | +This basically means you can use it, share it, adapt it for non-commercial | 
|  | 50 | +uses if you mention the original author and source and grant the same rights | 
|  | 51 | +defined in the license to others. | 
0 commit comments