为什么字符串显示在共享库文件中,如Linux中的.so文件?



我可以知道为什么linux中的。so文件会显示我的cpp代码中的字符串值吗?

例如,i set "Hello World"它会显示出来

我试了谷歌,但没有找到相关的…

谢谢。

-fvisibility=hidden只影响链接器的可见性,即当链接器试图链接到你的文件时,符号是否可见。它没有指定任何活动混淆。

您的字符串仍然被放置在数据段中,并且需要在加载库时加载到进程的内存空间中,因此在检查文件时它们仍然需要是可见的。如果您需要对它们进行混淆,您将需要自己对它们进行混淆,并在运行时对它们进行解码(要知道,一个充分确定的攻击者仍然可以逆向工程或调试您的库)。

最新更新