I have an MS C/C++ statically linked release exe (no debug info on it), that does not export any symbol, but when browsing it with a hex viewer I see things like
.?AVElxInterface@@
.?AV?$CBufferRefT@H@@
.?AV?$CBufferT@H@@
.?AV?$CBufferRefT@PAVElxInterface@@@@
of course they are the mangled names of certain classes/members provided by the internal C++ modules.
why are they there? how can avoid exposing them?
Personally, I don't see any reason to over-hide this data, as it supplies no clue to people who view it on how to utilize these symbols to do something "bad". However, if that's really a huge problem for you, i.e. you are afraid of being sort of reverse-engineered somehow, then you may opt to code obfuscation. For example, Semantic Designs offer a product for these purposes and claim that it's of high quality. I've never had a chance to try that stuff myself. Keep in mind that it's commercial.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With