[发明专利]一种调用软件保护装置外部代码的方法有效
申请号: | 201110409693.6 | 申请日: | 2011-12-08 |
公开(公告)号: | CN103164641B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 孙吉平;韩勇 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F9/46 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 黄威;邓玉婷 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 调用 软件 保护装置 外部 代码 方法 | ||
本发明公开了一种能调用外部代码的软件保护装置,软件保护装置包括安全硬件设备和软件执行单元。本发明中,将部分软件代码移植到硬件设备中,硬件运行时,当发现需要调用的代码不在硬件内部时,便会通知软件执行单元,由软件单元调用相应代码并将结果传送到安全硬件设备。通过本发明大大的提高了软件代码移植率,同时降低了安全硬件设备内部代码的复杂性。
技术领域
本发明涉及软件版权保护技术,特别涉及一种对软件进行保护的方法。
背景技术
软件作为一种特殊的产品,由于其纯数字化的特征,从问世起就一直遭受盗版的困扰。盗版的存在不仅给软件开发者造成了巨大的损失,也极大阻碍了整个软件行业的发展。因此,几乎所有的软件都采取了相应的技术措施来避免软件遭受破解和盗版,其中最为有效的就是基于硬件的加密锁技术。
软件保护装置是一种通过计算机接口(包括但不限于并口或者USB接口)连接到计算机主机上的硬件设备。该设备内部具有非易失性存储空间可供读写,通常还具有单片机或者微处理控制芯片等计算处理单元。
加密锁是一种常见的软件保护装置。软件开发者可以通过接口函数和加密锁进行数据交换(即对加密锁进行读写),来检查加密锁是否插在接口上;或者直接用加密锁附带的加密工具进行加密。这样,软件开发者可以在软件中设置多处软件锁,利用加密锁做为钥匙来打开这些软件锁;如果没插加密锁或加密锁不对应,软件将不能正常执行。
此外,加密锁内部包含特定的功能,例如一部分存储空间、一些密码算法或者一些用户自定义的算法或者功能。在软件发行之前,软件开发者修改自己的软件代码,使得软件在运行过程中需要使用到加密锁内部的一些功能,这样软件离开加密锁之后就会无法运行,而加密锁作为一种硬件设备复制的难度较大,从而起到防止盗版软件非法传播的作用。
当前市场上主要的加密锁包括:美国SafeNet公司的Sentinel Superpro、以色列Aladdin公司的Hasp HL、中国北京深思洛克数据保护中心的精锐IV、德国Wi-Bu公司的WIBU-Key等。所有这些加密锁都提供了内置的存储空间、私有或公开的密码算法,当软件运行过程中可以调用这些功能来检验是否属于正版。
北京深思洛克数据保护中心的精锐IV于2002年上市,其特点是采用了智能卡芯片作为硬件的基础,而且支持用户将自己定义的功能写入到加密锁内部,甚至可以直接将软件的部分功能移植到加密锁内部完成,从而大大提高了软件被盗版的难度,通常称这种将自己定义的功能或者软件的部分功能移植到加密锁内部的技术为代码移植。
北京深思洛克数据保护中心是本发明人的前身,现在对应网站为
在现有技术中,理论上通过代码移植可以将需要保护的软件的任意部分的代码移植到加密锁内部,从而使得这些代码能够在加密锁内部运行,以防止软件被复制或者非法使用。但是由于加密锁是一个独立于计算机主机之外的外部系统,其属于一种封闭的运行环境,因此只能运行封闭环境内部的代码。而且运行代码时不能与外界函数调用或者外界软件的功能模块进行交互,由于这些代码在加密锁中无法调用计算机主机系统中的应用程序接口(Application Programming Interface,即应用程序编程接口,下称API)或者受保护软件中其他模块的功能,因此移植到加密锁内部的那些代码在功能上必须独立,否则整个软件就无法运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110409693.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:固定到海底的抗冰型自升式钻井单元
- 下一篇:光电模块及其制造方法