当我使用带有保留符号信息的选项的 gcc 编译 C++ 二进制文件时,当我运行以下命令时,它会列出类的类型信息
objdump -Ct ExecName | grep typeinfo
当我使用剥离选项 -s 编译并运行以下命令时,它说没有符号。
但我担心 RTTI 信息被保存在其他地方。
我希望所有类名都不显示在二进制文件中。我想确认剥离符号是否最终会删除 RTTI 信息。
在 Blackhat 的这个演讲中,他们展示了如何使用 RTTI 来了解二进制文件。 http://www.blackhat.com/presentations/bh-dc-07/Sabanal_Yason/Paper/bh-dc-07-Sabanal_Yason-WP.pdf
我知道您可以在编译时使用 -fno-rtti 关闭 RTTI,但我希望这是最后的手段。