基于加密锁的软件版权保护方法和系统及加密锁技术方案

技术编号:2828109 阅读:184 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于加密锁的软件版权保护方法。本发明专利技术将受保护软件中部分代码移植到加密锁中,当受保护软件向加密锁发送调用指令后,无需等待加密锁返回的对应处理结果,而是可以继续运行,从而提高了软件运行速度。而且,加密锁也无需立即返回对应处理结果,而是在需要时再返回给受保护软件,使得各加密点的调用指令和对应处理结果不是一一对应的关系,而是复杂的网状关系,从而使得破解者即便基于操作系统对受保护软件进行监控,也无法获知每个调用指令对应的处理结果,从而无法破解出移植在加密锁中的部分代码,提高了软件版权保护的可靠性。本发明专利技术还公开了一种基于加密锁的软件版权保护系统和一种加密锁。

【技术实现步骤摘要】

本专利技术涉及软件版权保护技术,特别涉及一种基于加密锁的软件版权保 护方法、 一种基于加密锁的软件版权保护系统、以及一种加密锁。
技术介绍
软件由于其纯数字化的特征, 一直遭受盗版的困扰。而使用加密锁是实 现软件版权保护的一种主要手段。其中,加密锁是一个连接在计算机的并口或者通用串行总线(USB)接口上的硬件设备。在受保护软件发行之前,软 件开发者将该软件中对应某一线程的部分代码移植到加密锁中,使得受保护 软件在运行过程中,即受保护软件中的各线程运行过程中,必须调用连接在 其所在计算机的加密锁,而加密锁作为一种硬件设备,复制的难度较大,从 而起到防止盗版软件非法传播的作用。具体来说,参见图1,基于加密锁的软件版权保护方法是基于查询-应答 方式来实现的,包括步骤IOI,受保护软件基于其内部的代码运行某一线程,由于该线程对 应的中间一部分代码被移植到了加密锁中,因此,受保护软件在该线程运行 到移植在加密锁中的代码所对应的部分(该部分称为加密点)时,向加密锁 发送调用指令,并暂停运行。步骤102,接收到调用指令之后,加密锁基于移植在其内部的代码运行 对应的线程对该调用指令进行对应处理,得到对应的处理结果并反馈给受保 护软件,然后停止运行。步骤103,如果判断出接收到的处理结果正确,则受保护软件根据接收 到的处理结果继续运行在步骤101暂停运行的线程。由上述流程可见,现有基于加密锁的软件版权保护方式,可看作在多个 预设的加密点将线程分割为多段,其中的一部分由受保护软件运行、另一部 分则由加密锁运行。因而只有在加密锁与受保护软件所在计算机相连时,受保护软件才能够在其线程运行到加密点时调用加密锁以实现正常运行;而如 果未将加密锁连接至受保护软件所在的计算机,则受保护软件无法正常运 行。然而,上述方案虽然能够实现对软件版权的保护,但却存在以下问题1、 现有基于加密锁的软件版权保护方法中,由于对应同一线程的代码 被拆分至受保护软件和加密锁中,因此,必须由受保护软件和加密锁交替运 行该线程,使得受保护软件每次发出调用指令后,都必须等待加密锁返回对 应的处理结果才能够继续运行。而加密锁受到体积和成本等限制,处理能力 远远不能与受保护软件所在计算机相比,限制了受保护软件的运行速度。2、 受保护软件需要基于其所在计算机的操作系统运行,而由于操作系 统的开放性,因此,受保护软件的全部运行过程能够受到破解者的监控。换 言之,^C解者可以对受保护软件运行过程中的任何一个环节进行跟踪,包括 受保护軟件和加密锁之间的交互,以及调用加密锁并接收到对应处理结果之 后的处理过程。而现有基于加密锁的软件版权保护方法中,受保护软件在各 加密点与加密锁之间的交互,采用的是调用指令与处理结果——对应的查询 -应答方式,而且,各加密点之间无关联,从而使得破解者能够通过监控获 知每一个加密点的调用指令和处理结果,且只需分别针对每一个加密点的调用指令和处理结果进行分析,即可获知每个加密点的调用指令及其对应处理 结果所能够实现的功能,进而破解出移植在加密锁中的部分代码。可见,现有基于加密锁的软件版权保护方案的可靠性不高,且使得受保 护软件的运行速度较低。
技术实现思路
有鉴于此,本专利技术提供了一种基于加密锁的软件版权保护方法、 一种基于加密锁的软件版权保护系统、以及一种加密锁,能够提高软件版权保护的 可靠性,并提高受保护软件的运行速度。本专利技术提供的一种基于加密锁的软件版权保护方法,包括 本专利技术提供的 一种基于加密锁的软件版权保护系统,包括 本专利技术提供的一种加密锁,包括由上述技术方案可见,本专利技术将受保护软件中部分代码移植到加密锁 中,并由受保护软件和加密锁分别基于内部的代码同时运行对应的完整线 程,而不是基于现有查询-应答方式触发解密锁的运行,当受保护软件中某 一线程的运行,需要运行移植在加密锁中的代码所对应线程以得到对应处理 结果时,受保护软件才向加密锁发送调用指令。也就是说,本专利技术中的加密 点设置在受保护软件中各线程间的关联处,而不是设置在同一线程中、将同 一线程分割为多段并分别由受保护软件和加密锁交替运行,这样,受保护软 件无需等待加密锁返回的对应处理结果,而是可以继续运行其他线程,从而 提高了软件运行速度。而且,加密锁连续基于移植在其内部的代码运行对应的线程,即加密锁 运行的生命周期与受保护软件运行的生命周期相同,且在接收并处理调用指 令得到对应处理结果后,也无需立即将该处理结果返回给受保护软件,而是 可以在需要时再将对应处理结果返回给受保护软件,使得各加密点的调用指 令和对应处理结果不是——对应的关系,而是复杂的网状关系,从而使得破 解者即便基于操作系统对受保护软件进行监控,也无法获知每个调用指令对 应的处理结果,从而无法破解出移植在加密锁中的部分代码。附图说明图1为现有基于加密锁的软件版权保护方法的流程示意图。图2为本专利技术基于加密锁的软件版权保护方法的流程示意图。图3为本专利技术实施例中基于加密锁的软件版权保护方法的流程示意图。图4为本专利技术实施例中基于加密锁的软件版权保护系统的结构示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本专利技术进一步详细说明。图2为本专利技术基于加密锁的软件版权保护方法的流程示意图。如图2所 示,将受保护软件中的部分代码移植到加密锁中,例如将对应至少一个线程 的全部代码移植到加密锁中,并由受保护软件和加密锁分别基于内部的代码 开始运行对应的线程后,本专利技术基于加密锁的软件版权保护方法包括以下步 骤步骤201,受保护软件向加密锁发送调用指令,并继续基于其内部代码 运4亍对应的线牙呈。本步骤中,受保护软件向加密锁发送调用指令,可以是请求加密锁基于 其内部代码运行对应的线程以得到对应处理结果,用于受保护软件运行其另一线程,即受保护软件中的代码所对应的线程,与移植在加密锁中的代码所 对应的线程相关联,各线程间的关联点即可作为加密点。步骤202,加密锁在运行过程中,根据接收到的调用指令进行对应处理, 得到对应的处理结果,并继续基于其内部代码运行对应的线程。本步骤之前,加密锁可以在上电启动后自动开始基于其内部的代码运行 对应的线程,也可以在接收到受保护软件发出的调用指令后再基于其内部代 码开始运行对应的线程。无论如何启动加密锁的运行,加密锁均可以在得到对应的处理结果后继 续运朽^于应的线程而不停止。步骤203,在需要时,加密锁将对应的处理结果提供给受保护软件。本步骤中,可以由受保护软件在需要时向加密锁发送取结果指令,加密 锁根据接收到的取结果指令将对应的处理结果提供给所述受保护软件;其 中,在接收到取结果指令之前,得到的对应处理结果可以先存储在加密锁的 内存中。在接收到受保护软件发送的取结杲指令时,加密锁可能还未得到该取结 果指令对应的处理结果,因此,加密锁可以先判断是否已得到该取结果指令 对应的处理结果,如果是,则加密锁根据接收到的取结果指令将对应的处理结果提供给所述受保护软件;否则,通知受保护软件等待、或继续运行其他 线程。或者,加密锁在得到对应的处理结果后,可通知受保护软件,受保护软 件则在接收到对应处理结果已得到的通知后,才会向加密锁软件发送取结果 指令,这样可以无需加密锁再根据接本文档来自技高网
...

【技术保护点】
一种基于加密锁的软件版权保护方法,其特征在于,将受保护软件中部分代码移植到加密锁中,并由受保护软件和加密锁分别基于内部的代码同时运行对应的线程,该方法包括:    受保护软件向加密锁发送调用指令,并继续基于其内部代码运行对应的线程;    加密锁在运行过程中,根据接收到的调用指令进行对应处理,得到对应的处理结果,并继续基于其内部代码运行对应的线程;    在需要时,加密锁将对应的处理结果提供给受保护软件。

【技术特征摘要】
1、一种基于加密锁的软件版权保护方法,其特征在于,将受保护软件中部分代码移植到加密锁中,并由受保护软件和加密锁分别基于内部的代码同时运行对应的线程,该方法包括受保护软件向加密锁发送调用指令,并继续基于其内部代码运行对应的线程;加密锁在运行过程中,根据接收到的调用指令进行对应处理,得到对应的处理结果,并继续基于其内部代码运行对应的线程;在需要时,加密锁将对应的处理结果提供给受保护软件。2、 如权利要求1所述的方法,其特征在于,在加密锁基于内部的代码 开始运行对应的线程之前,该方法进一步包括加密锁上电启动后自动开始运行、或根据受保护软件发出的调用指令开士台i^4于。3、 如权利要求1所述的方法,其特征在于,在需要时,加密锁将对应 的处理结果提供给受保护软件包括受保护软件在需要时向加密锁发送取结果指令,加密锁根据接收到的取 结果指令将对应的处理结果提供给所述受保护软件。4、 如权利要求3所述的方法,其特征在于,加密锁根据接收到的取结 果指令将对应的处理结果提供给所述受保护软件之前,该方法进一步包括加密锁判断是否已得到该取结果指令对应的处理结果,如果是,则运行 所述将对应的处理结果提供给所述受保护软件;否则,通知受保护软件等待、 或继续运行其他线程。5、 如权利要求3所述的方法,其特征在于,在得到对应的处理结果之 后,该方法进一步包括加密锁通知受保护软件所述对应的处理结果已得到;受保护软件在接收到所述通知后再向加密锁发送所述取结果指令。6、 如权利要求3、或4、或5所述的方法,其特征在于,在接收到所述调用指令之后、受保护软件在需要时向加密锁发送取结果指令之前,该方法进一步包括加密锁根据接收到的调用指令的类型,判断是否需要在得到该调用指令 对应的处理结果后立即^^是供给受保护软件,如果是,则在得到该调用指令对 应的处理结果后立即提供给受保护软件,否则,等待所述取结果指令。7、 如权利要求3、或4、或5所述的方法,其特征在于,得到对应的处 理结果之后、接收到取结果指令之前,该方法进一步包括加密锁将对应的处理结果存储于其内存中。8、 如权利要求7所述的方法,其特征在于,将对应的处理结果存储于 其内存中之后,该方法进一步包括加密锁再次接收到另一调用指令,并根据该调用指令进行对应处理,更 新存储于内存中的处理结果。9、 一种基于加密锁的软件版权保护系统,包括运行于计算机的受保 护软件、以及加密锁,且所述受保护软件和加密锁分别基于内部的代码开始 运行对应的线程,其特征在于,所述受保护软件中部分代码移植于加密锁中;所述受保护软件,向加密锁发送调用指令,并继续基于其内部代码运行 对应的线程;所述加密锁,根据接收到的调用指令进行对应处理,得到对应的处理结 果,并继续基于其内部代码运行对应的线程;在需要时,将对应的处理结果 提供给所述受保护软件。10、 如权利要求9所述的系统,其特征在于,所述加密锁包括接口单 元、非易失性存储器和中央处理器单元CPU,其中,所述接口单元与所述计算才几相连,所述CPU通过所述接口单元与所述 受保护软件交互;所述受保护软件中部...

【专利技术属性】
技术研发人员:孙吉平韩勇
申请(专利权)人:北京深思洛克数据保护中心
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1