3

我有一个 MS C/C++ 静态链接的发布 exe(没有调试信息),它不导出任何符号,但是当用十六进制查看器浏览它时,我看到类似

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

当然,它们是内部 C++ 模块提供的某些类/成员的错误名称。

他们为什么在那里?如何避免暴露他们?

4

1 回答 1

1

就个人而言,我认为没有任何理由过度隐藏这些数据,因为它无法为查看它的人提供有关如何利用这些符号做“坏事”的线索。但是,如果这对您来说确实是一个大问题,即您害怕以某种方式进行逆向工程,那么您可能会选择代码混淆。例如,Semantic Designs为这些目的提供产品,并声称它是高质量的。我自己从来没有机会尝试过这些东西。请记住,它是商业的。

于 2013-03-17T07:27:34.107 回答