Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why mangled names found within an exe?

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?

like image 720
Pat Avatar asked Aug 05 '26 04:08

Pat


1 Answers

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.

like image 99
Alexander Shukaev Avatar answered Aug 07 '26 21:08

Alexander Shukaev