Beneath every application is a binary that reveals nothing on the surface. No source code, no comments, no explanations. Reverse Engineering and Binary Exploitation teaches students to open that black box, understand what a program truly does at the machine level, and recognize the flaws that turn a small oversight in memory handling into a complete system compromise.

The course begins with the reverse engineering journey, then takes students into assembly and disassembly, both in theory and through practical work, building the ability to read software the way a processor does. From there, students confront the techniques that make analysis harder, exploring obfuscation, then developing their own approach through debugging, dynamic analysis, and binary patching.

With that foundation, the focus shifts to exploitation. Students study stack security and work through a broad range of binary-based techniques including buffer overflow, ret2win, return oriented programming, ret2libc, and format string exploitation, supported by industry tooling such as Pwntools. Each technique is examined from both sides, understanding why the vulnerability exists and what defenses prevent it, so students leave not only knowing how binaries break but how to build software that does not.

What You Will Achieve

Upon completing this course, students will be able to analyze binary programs through a reverse engineering approach, perform static analysis, dynamic analysis, and debugging against binary programs, and reproduce and create successful exploitation of vulnerable binary programs.

Topics Covered

The Reverse Engineering Journey, Assembly and Disassembly with practical sessions, Obfuscation Techniques, Debugging and Dynamic Analysis, Binary Patching, Stack Security and Exploitation, Buffer Overflow, Exploiting with Pwntools, Ret2Win Exploitation, Return Oriented Programming, Ret2Libc Exploitation, and Format String Exploitation.