我将exe文件导入OllyDB,当我搜索存在的名称(标签)时,我能够看到所有函数声明,类名等。EXE路径中没有PDB。为什么会发生这种情况?我应该在构建期间启用一些混淆设置吗?

评论

.pdb是否在搜索路径中?

不,PDB不在搜索路径中。

您在使用RTTI吗?

是的,我在代码中使用了dynamic_cast <>。但这是一个问题吗?

是的,这可能是问题,并且绝对应该至少是其中的一部分。您是否会发布一些在代码中看到的可疑字符串的示例?

#1 楼

dynamic_cast需要在运行时检查强制转换在执行时是否有效,并且通常的实现方式是使用附加到参与强制转换的所有类的RTTI(运行时类型信息)。但是,由于要缩小可能强制转换的类的范围并不容易,因此在实践中,编译器针对所有多态类(即具有虚拟方法的类)发出RTTI。尽管C ++标准未指定RTTI详细信息,但Visual C ++实现保留了完整的类名。您可以在我有关该主题的文章中找到更多详细信息。