In this chapter, we discussed reverse engineering in Linux. We also studied fuzzing using Python. We looked at assembly language and mnemonics within the context of Linux debuggers (edb and gdb). We discussed stack buffer overflows in great detail, and we learned about the concepts of Heap buffer overflow and string format vulnerabilities. I would highly recommend spending a good amount of time on these ideas and exploring them on different operating system versions and vulnerable applications. By the end of this chapter, you should have a fair understanding of buffer overflow vulnerabilities and reversing in a Linux environment.
In the next chapter, we will discuss reverse engineering and buffer overflow vulnerabilities in the Windows environment. We will demonstrate exploitation using a real-world application.