符号可见性是否可以保护共享库免受滥用/破解?

时间:2013-05-21 08:14:29

标签: c++ c shared-libraries

GCC可见性功能使我们能够剥离我们不希望客户看到的共享库中的API。实际上我们不能使用ldopen来调用那些隐藏的函数,但我想知道这是否足以保护我们的敏感API。

我只想简要解释共享库中隐藏API的可靠性/安全性,以便我可以平衡工作量和风险。我之所以问这个问题只是因为我在海湾合作委员会的文件中找不到关于这个问题的充分描述。

请重新开启此问题。

2 个答案:

答案 0 :(得分:2)

可见性属性的真正目的是库不会暴露本身不应直接使用的部分。对于试图破解它的人来说,它几乎没什么区别。他们仍然需要反汇编代码,并且找出函数的入口点并不是非常困难(看看你自己!)。是的,通过兆字节的代码工作是很困难的,但有经验的人会知道要查找的内容,因此可能会跳过大量的代码。

答案 1 :(得分:1)

只要您可以解组代码,就可以破解它。可能需要更长时间,但可以做到。更安全的保护是在某些服务器上运行代码。这就是暗黑破坏神3如何保护它,它足够好。然而,破解某些东西是一个动机问题。如果你的程序足够好并且黑客足够坚定,那么有人会破解它。你只能增加所需的时间。