Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
指定计算机上的C++ C++静态库_C++_Static Libraries - Fatal编程技术网

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

指定计算机上的C++ C++静态库,c++,static-libraries,C++,Static Libraries,我将一个特殊的业务算法开发成一个静态库,我的其他开发人员编写非关键代码,在编译时链接到这个静态库。我想限制只有我的公司计算机Linux可以链接这个静态库,以防止这个静态库被窃取和滥用 如果不是一个好的解决方案,任何其他建议都将不胜感激 多谢各位 要做到这一点非常困难,因为有些人在做这类事情时有一定的技巧,不容易绕过它。一个简单的解决方案是检查网卡的MAC地址,如果它是错误的,就拒绝运行——但是,当然,任何想使用你的代码的人都只需要修补二进制文件以匹配他们的MAC地址。当你在另一台计算机上使用它时

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

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


多谢各位

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

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

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


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

可能需要在应用程序目录中有一些带有密码的特殊文件,您的静态库可以读取并检查内容?防止链接听起来不可能,但您可以将许可证管理器与您的库集成-例如,与服务器握手或读取绑定到可执行文件的许可证文件。静态库可以锁定到MAC地址吗f匹配指定的MAC,然后让链接器将其链接到应用程序中,否则,打印出错误。这一点很好。我已经考虑了很长时间,并做了一些研究。似乎没有简单的方法可以防止。谢谢