链接指定计算机上的C++静态库

link C++ static library on specified computer

本文关键字:C++ 静态 计算机 链接      更新时间:2023-10-16

我将一种特殊的业务算法开发到了一个静态库中,我的其他开发人员编写了非关键代码,在编译时会链接到这个静态库。我想限制只有我公司的计算机(Linux)可以链接这个静态库,以防止这个静态库被窃取和滥用。

如果不是一个好的解决方案,任何其他建议都将不胜感激!

非常感谢!

很难用一种有一定技能的人不会轻易绕过的方式来做到这一点。一个简单的解决方案是检查网卡的MAC地址,如果"错误",就拒绝运行——但当然,任何想使用你的代码的人都只需修补二进制文件以匹配他们的MAC地址。当你在另一台计算机上使用代码时,你必须重新编译它。

根据注释进行编辑:不,链接器不会检查MAC地址,但库中可以包含检查MAC地址的代码,然后打印消息。

一个更可行的解决方案是从某个地方的服务器请求权限。如果你还使用一些加密服务与服务器联系,并附上一个由两部分组成的密钥,那么很难破解。有基于此的商业产品,如果不起作用,它们就不存在了——但我相信也有人可以绕过/伪造这些产品。

和往常一样,它可以归结为"保护有多重要"answers"打破保护有多难"之间的妥协。游戏公司花了大量的钱来让游戏变得不可复制和难以复制,但几天之内,就有人绕过了它。这甚至不是国家机密——政府机构(中央情报局、联邦调查局、克格勃、军情五处等)可以让100个真正聪明的人在一个房间里试图破解某种东西,几乎肯定会破解它,几乎不管它是什么——除非它是真正重要的东西,否则它都不值得付出努力[当然,它也受到物理和逻辑保护机制的良好保护——例如,你不能只是从互联网登录到FBI服务器,而没有一些额外的安全性]。