一种软件保护方法及装置制造方法及图纸

技术编号:2858704 阅读:184 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件保护方法,包括步骤:在所述软件启动时生成验证值,根据所述验证值生成扰码结果;判断验证是否通过;如果验证通过,运行所述软件,并启动定时器;判断前述定时器是否到达预定周期;如达到预定周期,对前述扰码结果进行校验,判断校验是否通过;如果通过,则继续检测定时器;如果未通过,则退出所述软件的运行或进行所述软件的受限运行。

【技术实现步骤摘要】

本专利技术涉及软件保护领域,特别是涉及一种通过验证过程保护软件的方法及装置。
技术介绍
随着信息技术的发展,软件产业也越来越受到人们的重视,各种系统软件和应用软件层出不穷。通常,软件开发商需要投入庞大的人力物力进行软件的研发。但是,一旦软件开发成功,盗版者只需要花费少量的精力就可以进行仿制并低价销售,大为打击人们从事软件开发的积极性并严重阻碍软件产业的发展。为了遏制盗版以保护知识产权,业界推出了一系列软件保护技术。其中,在软件启动时,根据用户信息、产品序列号、数字签名和/或软件运行载体的标识进行使用权限验证是目前常用的软件保护方法,如果验证通过,则允许进行软件的运行;如果验证通不过,则返回提示信息,不允许运行所述软件或屏蔽部分功能只允许软件的受限运行。请参阅图1,是一种现有技术的软件保护方法的流程。当被保护的软件初始化时,将触发验证单元启动验证过程首先,获取用户信息、产品序列号、数字签名和/或软件运行载体的标识等信息;其次,返回值生成单元根据用户信息、产品序列号、数字签名和/或软件运行载体的标识进行验证,生成返回值;随后,比较单元根据所述返回值进行比较,以判断验证是否通过,如果是,则允许运行所述软件进行业务处理;如果否,则进行验证失败处理,如返回提示信息,不允许运行所述软件或屏蔽部分功能只允许软件的受限运行。所述现有技术的软件保护方法具有一些缺陷由于仅仅在软件初始化时进行处理,且通常由比较单元直接根据返回值进行判断,如果攻击者跟踪软件的验证过程,就可以通过修改这些验证过程的返回值,或者更改某些比较操作,使验证过程中总是返回验证通过,从而导致攻击者可以彻底绕过验证过程,而无需关注其它验证操作细节。
技术实现思路
本专利技术解决的技术问题在于提供一种增加攻击难度以提高安全性的软件保护方法及装置。为此,本专利技术解决技术问题的技术方案是提供一种软件保护方法,包括步骤1)在所述软件启动时生成验证值,根据所述验证值生成扰码结果;2)判断验证是否通过,如是,则进入步骤3);如否,则不允许运行所述软件或进行所述软件的受限运行;3)运行所述软件,并启动定时器;4)判断前述定时器是否到达预定周期,如是,则进入步骤5);如否,则不进行操作;5)对前述扰码结果进行校验,判断校验是否通过,如是,则返回步骤4);如否,则退出所述软件的运行或进行所述软件的受限运行。其中,所述步骤1)中,生成扰码结果具体包括11)生成伪随机数;12)利用所述伪随机数对验证值进行变换,生成第一变换结果。其中,所述步骤12)具体包括将伪随机数和验证值相加;对相加结果进行哈希变换。其中,将哈希变换结果作为字符串或者将哈希变换结果的值变换为字符串,所述字符串即第一变换结果。其中,所述步骤5)具体包括51)对扰码结果进行变换操作,生成第二变换结果;52)根据前述第一变换结果和第二变换结果获得校验结果;53)判断校验结果是否为预定值。其中,所述步骤51)中变换操作是哈希变换;所述步骤52)中将第一变换结果和第二变换结果进行按位异或。其中,所述步骤2)中,所述判断是否通过是判断验证值是否为预定值或对前述扰码结果进行校验。其中,在所述步骤1)之前还包括选取扰码结果存储单元。本专利技术还提供一种用于实现权利要求1所述的软件保护方法的软件保护装置,包括验证值生成单元,用于在所述软件启动时生成验证值;比较单元,用于比较验证值是否为预定值;还包括扰码结果生成单元,用于根据前述验证值生成扰码结果;定时器,用于在所述软件运行时触发校验装置;校验单元,用于在软件启动或定时器到达预定周期时对前述扰码结果进行校验。其中,所述验证值生成装置和比较装置集成为一体。相对于现有技术,本专利技术的有益效果是首先,由于本专利技术对返回的验证值进行扰码处理,生成扰码结果,并且在软件运行时设置定时器,当定时器到达预定周期时对扰码结果进行校验,即定期对扰码结果进行校验,从而增大攻击者针对返回的验证值进行攻击的难度并提高安全性,实现软件保护。其次,由于本专利技术对扰码结果进行定时校验,而不是重新生成验证值并对验证值进行判断,定时校验的速度较高。其次,在本专利技术的一个实施方式中,在软件启动时对扰码结果进行校验,相对现有技术在软件启动时对返回值进行验证而言,增加了针对返回值攻击的难度。附图说明图1是一种现有技术的软件保护方法的流程图;图2是本专利技术软件保护装置的原理框图;图3是本专利技术软件保护方法的流程图;图4是本专利技术软件保护方法实施例的流程图;图5是图4所示流程中扰码处理的流程图;图6是图4所示流程中扰码结果校验的流程图。具体实施例方式本专利技术软件保护方法及装置通过对返回的验证值进行扰码处理和对扰码结果进行定时校验,可以有效防御攻击者针对返回值进行的攻击,从而实现对软件的保护。请参阅图2,是应用本专利技术软件保护方法的软件保护装置的原理框图。所述软件保护装置包括验证值生成单元110、比较单元120、扰码结果生成单元130、定时器140和校验单元150;所述验证值生成单元110用于在被保护的软件启动时从数据处理系统200获取信息并生成验证值;所述比较单元120用于比较验证值是否为预定值并影响数据处理系统200的运行;所述扰码结果生成单元130用于根据前述验证值生成扰码结果;所述定时器140用于在所述软件运行时触发校验单元150;所述校验单元150用于在软件启动或定时器到达预定周期时对前述扰码结果进行校验,并影响数据处理系统200的运行。需要说明的是,所述验证值生成单元110和比较单元120可以集成在一起。请参阅图3,是本专利技术软件保护方法的流程图。首先,实施步骤S1,验证值生成单元110在所述软件启动时生成验证值,并且扰码结果生成单元130根据所述验证值生成扰码结果;步骤S2,判断验证是否通过,如是,则进入步骤S3;如否,则不允许数据处理系统200运行所述软件或进行所述软件的受限运行;步骤S3,允许运行所述软件,并启动定时器140;步骤S4,判断前述定时器140是否到达预定周期,如是,则进入步骤S5,如否,则不进行操作;步骤S5,校验单元150对前述扰码结果进行校验,判断校验是否通过,如是,则返回步骤S4;如否,则数据处理系统200退出所述软件的运行或进行所述软件的受限运行。需要说明的是,所述步骤S2中,判断验证是否通过时,可以采用比较单元120对验证值进行比较,也可以采用校验单元150对扰码结果进行校验。为了便于对本专利技术的理解,下面结合实施例对本专利技术做进一步的详细描述。请参阅图4,当被保护的软件初始化时,首先执行步骤S11,选定扰码结果存储单元,所述扰码结果存储单元包括第一存储区和第二存储区。随后,步骤S12中,验证值生成单元根据用户信息、产品序列号、数字签名和/或软件运行载体的标识生成验证值rtValue。一并参阅图5,扰码结果生成单元产生一个长度与第一存储区宽度一致(如32位)的伪随机数rtResult.ulData1,将其保存在第一存储区;利用所述伪随机数rtResult.ulData1对验证值rtValue进行变换,生成第一变换结果rtResult.ulData2,将所述第一变换结果rtResult.ulData2保存在第二存储区。所述伪随机数rtResult.ulData1和第一变换结果rtResult.ulData2本文档来自技高网
...

【技术保护点】
一种软件保护方法,其特征在于,包括步骤:1)在所述软件启动时生成验证值,根据所述验证值生成扰码结果;2)判断验证是否通过,如是,则进入步骤3);如否,则不允许运行所述软件或进行所述软件的受限运行;3)运行所述软件,并 启动定时器;4)判断前述定时器是否到达预定周期,如是,则进入步骤5);如否,则不进行操作;5)对前述扰码结果进行校验,判断校验是否通过,如是,则返回步骤4);如否,则退出所述软件的运行或进行所述软件的受限运行。

【技术特征摘要】
1.一种软件保护方法,其特征在于,包括步骤1)在所述软件启动时生成验证值,根据所述验证值生成扰码结果;2)判断验证是否通过,如是,则进入步骤3);如否,则不允许运行所述软件或进行所述软件的受限运行;3)运行所述软件,并启动定时器;4)判断前述定时器是否到达预定周期,如是,则进入步骤5);如否,则不进行操作;5)对前述扰码结果进行校验,判断校验是否通过,如是,则返回步骤4);如否,则退出所述软件的运行或进行所述软件的受限运行。2.根据权利要求1所述的软件保护方法,其特征在于,所述步骤1)中,生成扰码结果具体包括11)生成伪随机数;12)利用所述伪随机数对验证值进行变换,生成第一变换结果。3.根据权利要求2所述的软件保护方法,其特征在于所述步骤12)具体包括将伪随机数和验证值相加;对相加结果进行哈希变换。4.根据权利要求3所述的软件保护方法,其特征在于将哈希变换结果作为字符串或者将哈希变换结果的值变换为字符串,所述字符串即第一变换结果。5.根据权利要求2所述的软件保护方法,其特征在于,所述步骤5)具体包括51)对...

【专利技术属性】
技术研发人员:林中范云松谢永政
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1