~/talk

Behind Enemy Lines - Reverse Engineering C++ in Modern Ages

Talkat CppCon 2019 · 2019-09-15..09-20· [security, c-and-cpp]
name:Gal Zaban
links:none on file
slides:none on file

Shows how compiled C++ actually looks: uses Binary Ninja, MSVC calling conventions and registers, and dynamic breakpoints to trace virtual calls. Rebuilds class hierarchies and vtables, identifies that a boss object stores life = 15 and patches the binary (hex patch) to set boss HP = 15 → 1 to win the game. Diagnoses a scoreboard corruption as a dangling std::string_view returned from a temporary, causing reuse of stack storage.

AI-written summary · about

  1. 0:00Introduction
  2. 0:31Binary creation process
  3. 1:56Static vs dynamic analysis
  4. 3:23Disassemblers and decompilers
  5. 4:26Reverse engineering in practice
  6. 5:09MSVC compiler registers
  7. 7:01Dynamic object creation
  8. 9:11Recognizing constructors
  9. 10:17Virtual calls in assembly
  10. 11:22Reversing the game
  11. 12:24Debug symbols in binaries
  12. 13:51Spaceship VTable analysis
  13. 16:26Pseudo code from assembly
  14. 17:08Controller function flow
  15. 19:59Dynamic analysis with debugger
  16. 22:11Wave boss constructor
  17. 23:13Inheritance hierarchy
  18. 24:18Patching binary values
  19. 25:02Scoreboard string issues
  20. 26:06Small string optimization
  21. 29:21String view C++20 bug
  22. 32:11Reverse engineering benefits
  23. 33:41Security implications
  24. 34:14Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.