I have an issue with binary (already stripped) displaying symbols that leak a confidential information. When I look at binary, all symbols that are of concern are one of T
, D
or S
types.
Now since binary is statically linked (using external static libs that use different namespace), I cannot help but wonder, why do those symbols are global and why ld/strip did not remove them from symbol table?
So there are somehow two related questions:
- How does compiler/linker decide which symbols are global?
- Is there a way to make sure that compiler/linker does not export those symbols?