Recovering symbols from log functions
TL;DR
Stripped binaries still leak their source metadata, and you can recover it:
- Logging and
assert/BUG()macros bake__FILE__,__LINE__and__func__straight into.rodata - Those string literals hand back original function names and the source directory tree
- Two Binary Ninja plugins automate it: logrn (renames functions) and arborist (rebuilds the tree)
- Walkthrough on a tiny example first, then the automation