关于动态库的授权调用
假如我是库的作者,要发布给其他人调用使用,但我想 只让经过授权的用户调用,而非授权的用户无法调用,
有没有什么 比较容易实现,但不容易被逆向破解 的方法? 搜到了一个相关的链接,可以辅助讨论。
http://social.msdn.microsoft.com/Forums/zh-SG/visualcpluszhchs/thread/463a2c3c-d0ca-4cf2-9838-86088c6122b5 有此需求,关注中。 3# gxqcn
额,
我还指望老大透露细节呢。 郭老大不是有个序列号认证啊,在每个函数前再验证以下不就行了吗? 动态库最理想的授权模式是:仅对开发者限制,而对使用者不做限定。
也就是说,授权客户开发好后可以再自由分发给他的客户。
这个似乎比较难实现,2# 给的链接提出了一个比较好的思路。
还有一种授权模式则是:对每个最终使用者单独授权。
可通过读取客户的硬件序号进行加密验证,确保一机一号,
缺点是不利于二次开发的推广。 6# gxqcn
这个的确不仅仅是技术上的问题。
多谢老大点拨。 是不是可以对每个应用程序进行授权验证。比如对应用程序产生一个md5信息摘要,然后动态库初始化时对摘要信息进行加密验证。当然这个问题在于
1:如果应用程序版本更新,必须重新验证
2:对应用程序产生的信息摘要,代价比较大,基本职能在动态库初始化时进行验证,不能在调用过程中反复验证,很容易被破解。
另外,也可以提取程序资源文件中开发者名称信息,对这个信息进行版权信息匹配。但是这样,第三方在调试开发时只要使用验证对象的信息就可以使用了 又要对客户授权认证,又要能让客户免费分发,还要防止授权被恶意传递或扩散,
这本身就非常矛盾,所以实现起来也比较困难。 以库的形式发布软件,目的是为了封装代码,以及提高代码的可复用的程度。
在这一层次上做权限限定,的确是勉为其难,有悖此道。
======
我见的比较多的是 缺失某某动态库,但从未见过 软件运行的时候,调用某动态库的同时 提示用户 需要购买版权。
页:
[1]
2