Почему искалеченные имена найдены в exe?

У меня есть MS C / C ++ статически связанный релиз exe (без отладочной информации на нем), что не экспортирует ни одного символа, но при просмотре с помощью шестнадцатеричного просмотра я вижу такие вещи, как

.?AVElxInterface@@
.?AV?$CBufferRefT@H@@
.?AV?$CBufferT@H@@
.?AV?$CBufferRefT@PAVElxInterface@@@@

конечно, они являются искаженными именами определенных классов / членов, предоставляемых внутренними модулями C ++.

почему они там? как можно избежать их разоблачения?

4

Решение

Лично я не вижу смысла слишком скрывать эти данные, поскольку они не дают подсказок людям, которые рассматривают их, как использовать эти символы для совершения чего-то «плохого». Однако, если это действительно огромная проблема для вас, то есть вы боитесь, что вас каким-то образом перепроектируют, тогда вы можете выбрать запутывание кода. Например, Семантические дизайны предложить продукт для этих целей и заявить, что он высокого качества. У меня никогда не было возможности попробовать это самому. Имейте в виду, что это коммерческий.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]