wayne 发表于 2012-5-7 09:36:15

关于动态库的授权调用

假如我是库的作者,要发布给其他人调用使用,
但我想 只让经过授权的用户调用,而非授权的用户无法调用,

有没有什么 比较容易实现,但不容易被逆向破解 的方法?

wayne 发表于 2012-5-7 09:43:35

搜到了一个相关的链接,可以辅助讨论。
http://social.msdn.microsoft.com/Forums/zh-SG/visualcpluszhchs/thread/463a2c3c-d0ca-4cf2-9838-86088c6122b5

gxqcn 发表于 2012-5-7 11:51:11

有此需求,关注中。

wayne 发表于 2012-5-7 12:03:12

3# gxqcn
额,
我还指望老大透露细节呢。

qianyb 发表于 2012-5-7 12:22:50

郭老大不是有个序列号认证啊,在每个函数前再验证以下不就行了吗?

gxqcn 发表于 2012-5-7 16:32:08

动态库最理想的授权模式是:仅对开发者限制,而对使用者不做限定。
也就是说,授权客户开发好后可以再自由分发给他的客户。
这个似乎比较难实现,2# 给的链接提出了一个比较好的思路。

还有一种授权模式则是:对每个最终使用者单独授权。
可通过读取客户的硬件序号进行加密验证,确保一机一号,
缺点是不利于二次开发的推广。

wayne 发表于 2012-5-8 21:48:30

6# gxqcn
这个的确不仅仅是技术上的问题。
多谢老大点拨。

mathe 发表于 2012-5-9 07:53:12

是不是可以对每个应用程序进行授权验证。比如对应用程序产生一个md5信息摘要,然后动态库初始化时对摘要信息进行加密验证。当然这个问题在于
1:如果应用程序版本更新,必须重新验证
2:对应用程序产生的信息摘要,代价比较大,基本职能在动态库初始化时进行验证,不能在调用过程中反复验证,很容易被破解。

另外,也可以提取程序资源文件中开发者名称信息,对这个信息进行版权信息匹配。但是这样,第三方在调试开发时只要使用验证对象的信息就可以使用了

gxqcn 发表于 2012-5-9 08:55:22

又要对客户授权认证,又要能让客户免费分发,还要防止授权被恶意传递或扩散,
这本身就非常矛盾,所以实现起来也比较困难。

wayne 发表于 2012-5-9 08:56:55

以库的形式发布软件,目的是为了封装代码,以及提高代码的可复用的程度。
在这一层次上做权限限定,的确是勉为其难,有悖此道。
======
我见的比较多的是 缺失某某动态库,但从未见过 软件运行的时候,调用某动态库的同时 提示用户 需要购买版权。
页: [1] 2
查看完整版本: 关于动态库的授权调用