Reversing Basic C++ Objects with Ghidra: Inheritance and Polymorphism (Part 2)

In this video we’ll take a look at several sample programs that use C++ objects, compile them from source and then reverse engineer them with Ghidra. Our goals will be to identify the size/structure of the memory allocation and how it’s used by the object and explore the use of virtual functions and virtual function tables, inheritance and polymorphic behavior. Recognizing the use of C++ objects is helpful a variety of reverse engineering activities, to include malware analysis and software exploitation. This is the second video in a series exploring the reverse engineering of object-oriented languages.

Video on YouTube

Source code can be found on my Github: https://github.com/jstrosch/learning-reverse-engineering/tree/master/C%2B%2B%20Objects