链接指定计算机上的C++静态库
link C++ static library on specified computer
我将一种特殊的业务算法开发到了一个静态库中,我的其他开发人员编写了非关键代码,在编译时会链接到这个静态库。我想限制只有我公司的计算机(Linux)可以链接这个静态库,以防止这个静态库被窃取和滥用。
如果不是一个好的解决方案,任何其他建议都将不胜感激!
非常感谢!
很难用一种有一定技能的人不会轻易绕过的方式来做到这一点。一个简单的解决方案是检查网卡的MAC地址,如果"错误",就拒绝运行——但当然,任何想使用你的代码的人都只需修补二进制文件以匹配他们的MAC地址。当你在另一台计算机上使用代码时,你必须重新编译它。
根据注释进行编辑:不,链接器不会检查MAC地址,但库中可以包含检查MAC地址的代码,然后打印消息。
一个更可行的解决方案是从某个地方的服务器请求权限。如果你还使用一些加密服务与服务器联系,并附上一个由两部分组成的密钥,那么很难破解。有基于此的商业产品,如果不起作用,它们就不存在了——但我相信也有人可以绕过/伪造这些产品。
和往常一样,它可以归结为"保护有多重要"answers"打破保护有多难"之间的妥协。游戏公司花了大量的钱来让游戏变得不可复制和难以复制,但几天之内,就有人绕过了它。这甚至不是国家机密——政府机构(中央情报局、联邦调查局、克格勃、军情五处等)可以让100个真正聪明的人在一个房间里试图破解某种东西,几乎肯定会破解它,几乎不管它是什么——除非它是真正重要的东西,否则它都不值得付出努力[当然,它也受到物理和逻辑保护机制的良好保护——例如,你不能只是从互联网登录到FBI服务器,而没有一些额外的安全性]。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- #为""定义宏;静态";针对不同的上下文
- cmake如何在fedora工作站中找到boost静态库包
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- cmake在我的项目中所需的所有静态库都不成功
- C++从另一个类访问公共静态向量的正确方法是什么
- 基于boost的程序的静态链接——zlib问题
- 在静态库中嵌入类方法
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在C++中获得"静态纯虚拟"功能?
- 私有类型的静态常量成员
- 使用gcc从静态链接的文件中查找可选符号
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 如何在C++中使用非静态成员函数作为回调函数
- 将静态库链接到不带-fPIC的共享库中
- 静态结构和一个定义规则
- 为什么虚函数不能是静态的和全局的?
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身