[发明专利]一种在安全环境中生成代码提高软件保护强度的方法有效
申请号: | 201310040228.9 | 申请日: | 2013-02-01 |
公开(公告)号: | CN103106356A | 公开(公告)日: | 2013-05-15 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 北京深思洛克软件技术股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100084 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 安全 环境 生成 代码 提高 软件 保护 强度 方法 | ||
技术领域
本发明涉及软件版权保护技术,特别涉及到基于即时编译的软件保护方法。
背景技术
计算机软件由于具有数字化的特征,因此很容易被复制和非法使用,软件保护技术就是用来保护软件版权、避免软件被非法使用的技术。
针对计算机软件进行破解的主要方法就是调试,通过调试了解软件运行的流程和逻辑,然后加以篡改,实现对软件破解,由于运行计算机软件的计算机硬件和操作系统平台信息是公开的,并且都提供了对调试器的支持以便进行正常的软件调试,因此,在这种环境下很难避免软件被调试,所以,软件保护的一个重要发展方向就是构造安全的运行环境,在安全环境中运行软件的部分代码,这样,针对软件进行分析就必须先分析出安全环境,提高了破解的难度。例如常见的虚拟机保护技术,使用未公开架构的虚拟机来运行软件的部分代码,破解者要调试这部分软件代码就必须分析出虚拟机的指令集。
安全环境显著提高了软件调试的难度,特别是对于将安全环境置于智能卡硬件或者远程服务器的情况,几乎不可能对受保护的部分进行调试,从而可以实现非常高的保护强度。
然而,由于构造安全环境要比构造普通的环境考虑的情况更加复杂,在安全环境中运行代码的速度会大幅度降低,例如某些虚拟机保护方法甚至会使软件的运行速度下降1000倍以上,且如果软件本体和在安全环境中运行的代码之间相互访问频繁的情况下,软件的运行效率还会降低,从而降低安全环境这种软件保护方式的可用性。
发明内容
本发明提供一种在安全环境中生成代码提高受保护软件保护强度的方法,所述安全运行环境是可运行代码、具有安全防范功能、难以进行调试的计算机运行环境,
其中所述安全环境中运行代码生成模块,所述代码生成模块根据源输入逻辑描述生成对应逻辑的可执行代码;其中,所述受保护软件中具有调用模块;
所述方法包括如下步骤:
抽取受保护软件中的部分代码;
将所述部分代码转换为源输入逻辑描述;
在所述受保护软件中被抽取代码的位置插入调用模块;
当所述受保护软件运行到被抽取代码的位置时,所述调用模块将调用安全环境,报告运行环境信息;
所述安全环境中的所述代码生成模块根据所述运行环境信息生成与所述运行环境相关的执行代码;
将生成的与运行环境相关的所述执行代码填充到所述被抽取代码的位置;
所述受保护软件执行所述执行代码。
根据本发明的一个方面,所述安全环境包括但不限于虚拟机、智能卡、远程服务器。
根据本发明的一个方面,每次生成的执行代码不完全相同。
根据本发明的一个方面,所述生成的执行代码是完成相同的功能的等效代码。
根据本发明的一个方面,在执行完所述执行代码之后,将受保护软件中的这部分生成的执行代码清除。
附图说明
附图1为按照本发明的在安全环境中生存代码的软件保护方法的一优选实施例的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
有鉴于此,本发明提供了一种利用安全环境动态生成软件代码的软件保护方法和系统,可以在基本不影响软件运行效率的情况下获得相对较高的安全性。
本发明包括安全运行环境,运行在安全环境中的代码生成模块,受保护软件中加入的调用模块。
所述安全运行环境是可运行代码,但是具有安全防范功能、难以进行调试的计算机运行环境,例如运行在受保护软件所在进程中的虚拟机、智能卡、远程服务器等。
所述代码生成模块可以根据源输入逻辑描述生成对应逻辑的可执行代码。
所述受保护软件中的调用模块用于替代被抽取的代码,当运行到被抽取代码的位置时,调用模块调用安全环境,提交运行环境信息。
步骤A,将受保护软件中的部分代码抽取出来,并转换为代码生成模块的源输入逻辑描述,而且在被抽取代码的位置插入调用模块。
步骤B,当受保护软件运行到被抽取代码的位置时,调用模块将调用安全环境,报告运行环境信息,安全环境中的代码生成模块根据运行环境信息生成与运行环境相关的执行代码。
步骤C,将生成的代码填充到被抽取的位置,软件执行此代码。
其中,根据本发明的一种实施方式,在上述步骤B中,每次生成的代码可以不完全相同,例如用等效的指令完成相同的功能,使用不同的优化方式,这可以增加调试和分析的难度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思洛克软件技术股份有限公司,未经北京深思洛克软件技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310040228.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电容容量测量电路
- 下一篇:一种准确定量直接转注离心管的采尿方法及设备