Lecturer: prof. Giovanni Lagorio (DIBRIS, Università di Genova)
When and where
PhD course lectures:
11/12/2017 14:30-18:30, room: 710 @ DIBRIS - Via Dodecaneso 35, I-16146, Genoa, Italy. 12/12/2017 14:30-18:30, room: 710 @ DIBRIS - Via Dodecaneso 35, I-16146, Genoa, Italy. 13/12/2017 14:00-18:00, room: 710 @ DIBRIS - Via Dodecaneso 35, I-16146, Genoa, Italy. 18/12/2017 14:00-18:00, room: 710 @ DIBRIS - Via Dodecaneso 35, I-16146, Genoa, Italy.
The course introduces techniques and tools to reverse engineer and exploit x86/64 binary programs.
This course has a strong hands-on approach; proficiency in low-level C programming, and familiarity with operating system concepts are a must. Lectures will contain practical activities, therefore participants need to bring their own Linux laptops and set them up appropriately.
The exam consists in the exploitation of some 32/64-bit programs (a different set for each student), and a subsequent discussion of the used techniques and tools.
Laptop (VM?) setup
Assuming a Debian-based distro (examples tested on Ubuntu 16.04); tools:
Course contents and materials
The playlist of the lectures (in Italian) is available on Youtube.
- x86/x64 Assembly
- Binary Reversing
- Binary Exploitation
- Memory corruption attacks
- Stack Canaries
- Non-executable stack
- Format-string attacks
- Address-Space Layout Randomization
- Lectures on Youtube: Part 6, Part 7, Part 8, Part 9, Part 10 (few minutes of the recording are missing due to network error during streaming), Part 11 and Part 12