~/talk

C++11 Metaprogramming Applied to Software Obfuscation

Talkat Black Hat Europe 2014 · 2014-10-14..10-17· [c-and-cpp, security]
links:none on file
slides:none on file

Uses C++11 template metaprogramming to emit compile-time encrypted string literals (variadic templates + index sequences) and per-string randomized keys via a meta-LCG seeded from __TIME__ + __COUNTER__ seed, producing inline decryption at runtime. Builds compile-time Boost MPL/MSM finite-state machines to interpose and polymorph calls so IDA cannot find cross-references; demo shows protected binaries with no plaintext strings and missing xrefs. Source is on GitHub; works with clang/GCC, not full MSVC.

AI-written summary · about

  1. 0:00Intro
  2. 0:56Reverse engineering
  3. 5:26What is Obfuscation?
  4. 7:17Without templates
  5. 8:09With C++ templates
  6. 9:29Type safety
  7. 9:59Optimisation based on types
  8. 10:56C++ metaprogramming
  9. 11:50Strings literals obfuscation
  10. 16:501st implementation - Problem
  11. 18:172nd implementation - Usage
  12. 18:27rd implementation
  13. 19:08Generating (pseudo-) random numbers
  14. 19:55Seed
  15. 21:23th implementation
  16. 23:03Without obfuscation
  17. 25:11Application 2 - Obfuscate calls
  18. 25:44Finite State Machine (simple example)
  19. 26:23Boost Meta State Machine (MSM) library
  20. 31:25FSM + Debugger Detection
  21. 32:36More obfuscation
  22. 34:07Predicate
  23. 35:01Compilers support
  24. 36:21White paper
~/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.