Now that we've worked with 32-bit and 64-bit binaries written in assembly, let's switch gears a bit and work on a binary written in C. We're also going to identify vulnerabilities in this binary instead of identifying malicious functionality. I want to communicate a small caveat to all of this. The vulnerabilities in this chapter are not new by any means. Unfortunately, these types of vulnerabilities still appear in modern applications, albeit in a more complex way than what is presented in this chapter.
I'm a firm believer in setting your future endeavors up to succeed, so I feel it is incredibly important to understand these vulnerabilities using the simplified example binary in this chapter. I'm more interested in helping you to understand the nature of these vulnerabilities while providing you with the tools and skills so...