Instructors:
Steven Rossi (1st Half)
Gilbert Hoermann (2nd Half)
Course Description
Software is everywhere and many developers aren't aware of how to properly write secure code. We will cover practical skills in reverse engineering, binary exploitation, and program analysis. We cover techniques used by hackers for some of the largest security incidents of the century. With a strong understanding of attack patterns, students will be able to implement more secure coding practices into their own code and recognize common bug patterns.
Main topics covered in this course:
- X86-64 Assembly
- Reverse engineering using GDB & Ghidra
- Code auditing and vulnerability analysis
- Basics of Stack, Heap, and Kernel exploitation including techniques like ROP and Tcache Dups
- Exploit mitigations such as ASLR, NX, stack cookies, etc
- Automated Program Analysis using Pin, Llvm, symbolic execution and Ghidra Scripting
Course Goals
By the end of this course, you will:
- Gain a deeper understanding of operating systems and memory management.
- Learn how to reverse engineer closed source programs.
- Analyze programs for potential security vulnerabilities and learn more secure coding practices.