CN110795702A - 一种软件防破解方法、装置、设备、介质 - Google Patents

一种软件防破解方法、装置、设备、介质 Download PDF

Info

Publication number
CN110795702A
CN110795702A CN201910968794.3A CN201910968794A CN110795702A CN 110795702 A CN110795702 A CN 110795702A CN 201910968794 A CN201910968794 A CN 201910968794A CN 110795702 A CN110795702 A CN 110795702A
Authority
CN
China
Prior art keywords
configuration data
data
target
encrypted
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910968794.3A
Other languages
English (en)
Inventor
李松
李锋
刘程程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yingxin Computer Technology Co Ltd
Original Assignee
Shandong Yingxin Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Yingxin Computer Technology Co Ltd filed Critical Shandong Yingxin Computer Technology Co Ltd
Priority to CN201910968794.3A priority Critical patent/CN110795702A/zh
Publication of CN110795702A publication Critical patent/CN110795702A/zh
Priority to PCT/CN2020/092844 priority patent/WO2021068519A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种软件防破解方法、装置、设备、介质,该方法包括:获取由激活后的所述目标软件的正常运行形成的变化配置数据,并加密;利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件,防止所述目标软件被破解,从而避免所述目标软件被非法使用。

Description

一种软件防破解方法、装置、设备、介质
技术领域
本申请涉及软件管理技术领域,特别涉及一种软件防破解方法、装置、设备、介质。
背景技术
随着技术的发展,在商业软件领域,越来越多的软件选择部分功能收费,这既是对研发者知识产权的保护,也是商业软件经营者对自己产品权益的正确保护手段。因此,如何保护商业软件不被破解和违法使用成为一项迫切的任务。
发明内容
有鉴于此,本申请的目的在于提供一种软件防破解方法、装置、设备、介质,能够防止软件被破解,从而避免软件被违法使用。其具体方案如下:
第一方面,本申请公开了一种软件防破解方法,应用于嵌入目标软件中的预设***,包括:
获取由激活后的所述目标软件的正常运行形成的变化配置数据;
将所述变化配置数据进行加密,得到加密后变化配置数据;
利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后原始配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;
将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;
如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
可选的,所述获取由目标软件的正常运行形成的变化配置数据,包括:
利用所述预设***中的set接口获取由激活后的所述目标软件的正常运行形成的变化配置数据。
可选的,所述利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,包括:
利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的,包括目标软件版本数据、激活码失效时间数据、安装所述目标软件的机器对应的机器码数据、长度为预设长度的随机数、所述目标软件安装的设备数、激活时间数据以及奇偶校验数据的加密后原始配置数据。
可选的,所述将所述变化配置数据进行加密,得到加密后变化配置数据,包括:
利用非对称加密算法将所述变化配置数据进行加密,得到加密后变化配置数据。
可选的,所述获取由目标软件的正常运行形成的变化配置数据之前,还包括:
利用激活码激活所述目标软件,以得到所述目标软件的原始配置数据;
对所述原始配置数据进行加密,得到所述加密后原始配置数据;
将所述加密后原始配置数据存储到目标数据库中;
利用所述随机数,从所述备用文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址;
根据所述目标文件地址的数量,将所述加密后原始配置数据分成相应数量的片段,并将所述片段依次存储到所述目标文件地址中。
可选的,所述利用所述随机数,从所述备用分布式冗余加密文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址,包括:
利用所述随机数和预设公式,确定出用于存储所述加密后原始配置数据的目标文件地址的数量;
从所述备用文件列表中确定出相应数量的目标文件地址,以存储所述加密后原始配置数据;
其中,所述预设公式为n=M%N,n表示所述目标地址的数量,M表示所述随机数,N表示所述备用文件列表中的文件地址总数量,%表示取余运算。
可选的,所述将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对,包括:
利用所述预设***中的get接口,分别从所述目标数据库和所述备用文件列表中读取所述更新后配置数据,并进行解密,对应得到第一解密数据和第二解密数据;
将所述第一解密数据和第二解密数据进行比对。
第二方面,本申请公开了一种软件防破解装置,包括:
数据获取模块,用于获取由目标软件的正常运行形成的变化配置数据;
加密模块,用于将所述变化配置数据进行加密,得到加密后变化配置数据;
数据更新模块,用于利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;
数据比对模块,用于将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;
启用控制模块,用于当所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
第三方面,本申请公开了一种软件防破解设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的软件防破解方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的软件防破解方法。
可见,本申请先获取由激活后的所述目标软件的正常运行形成的变化配置数据;将所述变化配置数据进行加密,得到加密后变化配置数据;利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。由此可见,本申请先获取由目标软件的正常运行形成的变化配置数据,并进行加密,以更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,并比对所述目标数据库中的更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据,如果所述第一解密数据和第二解密数据不相同,则表示所述目标数据库或所述备用文件列表中的配置数据被修改,从而会导致所述目标软件被破解,故禁止启用所述目标软件,并要求重新激活所述目标软件,能够防止软件被破解,从而避免软件被违法使用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种软件防破解方法流程图;
图2为本申请公开的一种具体的软件防破解方法流程图;
图3为本申请公开的一种具体的软件防破解方法流程图;
图4为本申请公开的一种软件防破解方法应用示意图;
图5为本申请公开的一种软件防破解装置结构示意图;
图6为本申请公开的一种软件防破解设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种软件防破解方法,参见图1所示,应用于嵌入目标软件中的预设***,该方法包括:
步骤S11:获取由激活后的所述目标软件的正常运行形成的变化配置数据。
可以理解的是,所述预设***为嵌入目标软件中的一套程序。所述目标软件在正常运行的过程中,部分配置数据会随之发生变化,所以需要获取由所述目标软件的正常运行形成的变化配置数据,所述变化配置数据可以是对可变化配置数据和恒定配置数据的总称,所述变化配置数据包括但不限于目标软件版本数据、激活码失效时间数据、安装所述目标软件的机器对应的机器码数据、长度为预设长度的随机数、所述目标软件安装的设备数、激活时间数据以及奇偶校验数据。
步骤S12:将所述变化配置数据进行加密,得到加密后变化配置数据。
本实施例中,获取到所述变化配置数据后,将所述变化配置数据进行加密,得到加密后变化配置数据。
在第一种具体的实施方式中,所述将变化配置数据进行加密,得到加密后变化配置数据,包括:利用非对称加密算法将变化配置数据进行加密,得到加密后变化配置数据。采用非对称加密算法对所述变化配置数据进行加密时,加密和解密过程中所使用的密钥不相同,要完成正常的加密和解密过程,就必须配对使用,可以增强数据的安全性,减低配置数据被改写的概率,减小目标软件被破解的可能性。
在第二种具体的实施方式中,所述将变化配置数据进行加密,得到加密后变化配置数据,包括:利用对称加密算法将变化配置数据进行加密,得到加密后变化配置数据。采用所述对称加密算法对所述变化配置数据进行加密时,加密和解密所采用的密钥为相同的密钥。所述对称加密算法相比所述非对称加密算法来说,加密和解密的速度更快,但安全性相对低一些。
步骤S13:利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量。
可以理解的是,将所述变化配置数据进行加密后,得到所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量。所述备用文件列表中的文件地址总数量大于所述目标数据对应的文件片段数量,使得外界不能确定所述加密后原始配置数据对应的文件片段存储在哪些文件地址下,也不确定当前文件片段表示的具体是哪些配置数据,降低了所述目标软件被破解的概率,提高所述目标软件的安全性。
本实施例中,得到加密后变化配置数据后,利用所述加密后变化配置数据替换所述目标数据库中的所述加密后原始配置数据,得到所述目标数据库中的更新后配置数据,并根据预先存储在所述备用文件列表中的所述加密后原始配置数据的文件片段数量,将所述加密后变化配置数据分成数量相应的文件片段,按照预先保存的用于存储所述加密后原始配置数据的文件片段的目标文件地址或目标文件名称,用所述加密后变化配置数据的文件片段替换所述加密后原始配置数据的相应文件片段,得到所述备用文件列表中的更新后配置数据。所述分片式存储方式为将所述加密后原始配置数据分成一定数量的文件片段,再进行保存的存储方式。
本实施例中,所述加密后原始配置数据为加密后的原始配置数据,所述加密后原始配置数据包括但不限于所述目标软件版本数据、所述激活码失效时间数据、所述机器码数据、所述随机数、所述设备数、所述激活时间数据以及所述奇偶校验数据。其中,所述激活码失效时间数据表示激活码的失效时间,所述失效时间既可以通过失效具体年月日给定,例如2020年1月1日,也可以通过有效时长给定,例如,有效时长为2年。
步骤S14:将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对。
可以理解的是,在所述目标软件的运行过程中,所述目标软件对应的配置数据可能被黑客修改,以非法利用所述目标软件,所以需要将所述目标数据库中的所述更新后配置数据对应的第一配置数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对,判断所述第一解密数据和所述第二解密数据是否相同,以便判断所述目标数据库或所述备用文件夹中的配置数据是否被非法修改。如果所述第一解密数据与所述第二解密数据不相同,则所述目标数据库或所述备用文件列表中的配置数据被非法修改了。
本实施例中,存储在所述目标数据库和所述备用文件列表中的加密后配置数据中包括奇偶校验数据,当所述备用文件列表中的任意一个存储所述加密后配置数据对应的文件片段被非法修改时,可以通过所述奇偶校验数据和剩下的文件片段,还原出那个被修改的文件片段,不会导致所述第一解密数据和所述第二解密数据不相同。但当所述加密后配置数据中的两个及以上文件片段被非法修改,或所述目标数据库被非法修改时,所述加密后配置数据不能被还原,便会导致所述第一解密数据和所述第二解密数据不相同。由于所述预设***中的set接口对用户不开放,所以所述目标软件中没有可以被非法修改,且属于所述加密后配置数据的配置数据。
步骤S15:如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
可以理解的是,在所述第一解密数据与所述第二解密数据不相同时,则禁止启用所述目标软件,并要求重新激活所述目标软件;在所述第一解密数据与所述第二解密数据相同时,则控制所述目标软件正常运行。
可见,本申请先获取由激活后的所述目标软件的正常运行形成的变化配置数据;将所述变化配置数据进行加密,得到加密后变化配置数据;利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。由此可见,本申请先获取由目标软件的正常运行形成的变化配置数据,并进行加密,以更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,并比对所述目标数据库中的更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据,如果所述第一解密数据和第二解密数据不相同,则表示所述目标数据库或所述备用文件列表中的配置数据被修改,从而会导致所述目标软件被破解,故禁止启用所述目标软件,并要求重新激活所述目标软件,能够防止软件被破解,从而避免软件被违法使用。
参见图2所示,本申请实施例公开了一种具体的软件防破解方法,应用于嵌入目标软件中的预设***,该方法包括:
步骤S21:利用所述预设***中的set接口获取由激活后的所述目标软件的正常运行形成的变化配置数据。
本实施例中,所述预设***中包括两个连接所述目标软件的接口,即set接口和get接口。利用所述set接口获取由激活后的所述目标软件的正常运行形成的变化配置数据。所述set接口以Map<String,String>的明文方式获取由所述目标软件的正常运行形成的变化配置数据,然后再通过加密算法计算出密文。
步骤S22:将所述变化配置数据进行加密,得到加密后变化配置数据。
步骤S23:利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后原始配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量。
步骤S24:利用所述预设***中的get接口,分别从所述目标数据库和所述备用文件列表中读取所述加密后原始配置数据,并进行解密,对应得到第一解密数据和第二解密数据。
步骤S25:将所述第一解密数据和第二解密数据进行比对。
本实施例中,所述get接口对所述目标软件提供一个Map<String,String>接口。利用所述get接口分别从所述目标数据库和所述备用文件列表中读取所述更新后配置数据,并进行解密,对应的得到第一解密数据和第二解密数据。将所述第一解密数据和所述第二加密数据进行比对,判断所述第一解密数据与所述第二解密数据是否相同,以便判断所述目标数据库或所述备用文件列表中的所述加密后配置数据是否被非法修改。
步骤S26:如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
参见图3所示,本申请实施例公开了一种具体的软件防破解方法,应用于嵌入目标软件中的预设***,该方法包括:
步骤S31:利用激活码激活所述目标软件,以得到所述目标软件的原始配置数据。
步骤S32:对所述原始配置数据进行加密,得到加密后原始配置数据。
本实施例中,需要先在目标软件被激活码激活后,获取原始配置数据,并对所述原始配置数据进行加密,得到加密后原始配置数据。其中,所述激活码由所述目标软件的运营商利用激活码生成***产生。所述激活码生成***用于生成激活码。具体的,所述目标软件的运营人员根据用户的采购订单,生成一个只针对此用户的序列号,再利用所述激活码生成***,结合所述序列号和安装所述目标软件的机器的机器码生成激活码。所述激活码包括但不限于所述目标软件版本数据、所述激活码失效时间、所述机器码以及所述随机数,各个不同的数据之间采用英文逗号分隔。所述目标软件获取到所述激活码后,利用所述预设***解密所述激活码,并根据所述激活码失效时间,判断所述激活码是否已经失效,若所述激活码已经失效,则不能激活所述目标软件,若所述激活码没有失效,则激活所述目标软件。当所述激活码失效时间以具体年月日给定时,所述预设***通过读取安装所述目标软件的机器的主板时间,以判断所述激活码是否已经失效;当所述激活码失效时间以有效时长给定的时候,所述预设***判断所述有效时长是否为0,以判断所述激活码是否已经失效。
本实施例中,在激活所述目标软件后,所述预设***获取原始配置数据,并将所述原始配置数据进行加密,得到加密后原始配置数据。
步骤S33:将所述加密后原始配置数据存储到目标数据库中。
可以理解的是,得到所述加密后原始配置数据后,所述预设***还会将所述加密后原始配置数据保存到目标数据库中。
步骤S34:利用所述随机数,从备用文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址。
本实施例中,在将所述加密后原始配置数据存储到所述目标数据库的过程中,还要将所述加密后原始配置数据分片存储到备用文件列表中。所述利用所述随机数,从备用文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址,包括:利用所述随机数和预设公式,确定出用于存储所述加密后原始配置数据的目标文件地址的数量;从所述备用文件列表中确定出相应数量的目标文件地址,以存储所述加密后原始配置数据;其中,所述预设公式为n=M%N,n表示所述目标地址的数量,M表示所述随机数,N表示所述备用文件列表中的文件地址总数量,%表示取余运算。其中,所述备用文件列表中的N个文件地址需要依次进行编号,编号依次为0至N-1。相应的,所述从所述备用文件列表中确定出相应数量的目标文件地址,以存储所述加密后原始配置数据,具体可以理解为,将所述N个文件地址中的第n个文件地址开始的n个文件地址确定为目标文件地址,若第n个文件地址到第N-1个文件地址的文件地址数量小于n,则到第N-1个文件地址后,再从第0个文件地址开始。例如,所述随机数为100005,所述备用文件列表中的文件地址总数量20,则100005%20=5,则用于存储所述加密后原始配置数据的目标文件地址有5个,依次为第5、第6、第7、第8、第9个文件地址。所述随机数为100012,所述备用文件列表中的文件地址总数量20,则100012%20=12,则用于存储所述加密后原始配置数据的目标文件地址有12个,依次为第12、第13、第14、第15、第16、第17、第18、第19、第0、第1、第2、第3个文件地址。
步骤S35:根据所述目标文件地址的数量,将所述加密后原始配置数据分成相应数量的片段,并将所述片段依次存储到所述目标文件地址中。
可以理解的是,在确定出用于保存所述加密后原始配置数据的目标文件地址后,将所述加密后原始配置数据分成相应数量的片段,并将所述片段依次存储到所述目标文件地址中。其中,所述将所述加密后原始配置数据分成相应数量的片段,包括:采用平均分配方法将所述加密后原始配置数据分成相应数量的片段。若所述加密后原始配置数据的长度不能被平均分配成相应数量的片段,则最后一个片段的长度根据实际情况决定。例如,所述加密后原始配置数据的长度为120位,由所述随机数得到的目标文件地址数量为5,则将所述加密后原始配置数据分成5个片段,每个片段的长度为24位。所述加密后原始配置数据的长度为119位,由所述随机数得到的目标文件地址数量为5,则将所述加密后原始配置数据分成5个片段,前四个片段中每个片段的长度为24位,第五个片段的长度为23位。相应的,将所述片段依次保存在第5、第6、第7、第8、第9个文件地址中。
步骤S36:获取由激活后的所述目标软件的正常运行形成的变化配置数据。
步骤S37:将所述变化配置数据进行加密,得到加密后变化配置数据。
步骤S38:利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后原始配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量。
步骤S39:将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对,如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
本实施例中公开的软件防破解方法的应用示意图如图4所示,从所述激活码中获取所述随机数,并利用所述随机数得到余数n,以确定用于存储所述加密后原始配置数据的目标文件地址数量和目标文件地址,将所述加密后原始配置数据存储到目标数据库和备用文件列表中的所述目标文件地址中。利用所述预设***中的所述set接口获取由目标软件正常运行形成的变化配置数据,并进行加密,得到加密后变化配置数据,利用所述加密后变化配置数据更新所述目标数据库和所述备用文件列表中的所述加密后原始配置数据。利用所述预设***中的所述get接口分别读取所述目标数据库和所述备用文件列表中的更新后配置数据,并解密,对应得到第一解密数据和第二解密数据,比对所述第一解密数据和所述第二解密数据,若所述第一解密数据和所述第二解密数据不相同,则所述get接口控制所述目标软件禁止启用,并要求重新激活所述目标软件;若所述第一解密数据和所述第二解密数据相同,则所述get接口控制所述目标软件正常运行。
参见图5所示,本申请实施例公开了一种软件防破解装置,包括:
数据获取模块11,用于获取由目标软件的正常运行形成的变化配置数据;
加密模块12,用于将所述变化配置数据进行加密,得到加密后变化配置数据;
数据更新模块13,用于利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后原始配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;
数据比对模块14,用于将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;
启用控制模块15,用于当所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
可见,本申请先获取由激活后的所述目标软件的正常运行形成的变化配置数据;将所述变化配置数据进行加密,得到加密后变化配置数据;利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。由此可见,本申请先获取由目标软件的正常运行形成的变化配置数据,并进行加密,以更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,并比对所述目标数据库中的更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据,如果所述第一解密数据和第二解密数据不相同,则表示所述目标数据库或所述备用文件列表中的配置数据被修改,从而会导致所述目标软件被破解,故禁止启用所述目标软件,并要求重新激活所述目标软件,能够防止软件被破解,从而避免软件被违法使用。
进一步的,参见图6所示,本申请实施例公开了一种软件防破解设备,包括处理器21和存储器22;
其中,所述存储器22,用于存储计算机程序;
所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的软件防破解方法。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:
获取由激活后的所述目标软件的正常运行形成的变化配置数据;将所述变化配置数据进行加密,得到加密后变化配置数据;利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
可见,本申请先获取由激活后的所述目标软件的正常运行形成的变化配置数据;将所述变化配置数据进行加密,得到加密后变化配置数据;利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。由此可见,本申请先获取由目标软件的正常运行形成的变化配置数据,并进行加密,以更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,并比对所述目标数据库中的更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据,如果所述第一解密数据和第二解密数据不相同,则表示所述目标数据库或所述备用文件列表中的配置数据被修改,从而会导致所述目标软件被破解,故禁止启用所述目标软件,并要求重新激活所述目标软件,能够防止软件被破解,从而避免软件被违法使用。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述预设***中的set接口获取由激活后的所述目标软件的正常运行形成的变化配置数据。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的,包括目标软件版本数据、激活码失效时间数据、安装所述目标软件的机器对应的机器码数据、长度为预设长度的随机数、所述目标软件安装的设备数、激活时间数据以及奇偶校验数据的加密后原始配置数据。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用非对称加密算法将所述变化配置数据进行加密,得到加密后变化配置数据。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用激活码激活所述目标软件,以得到所述目标软件的原始配置数据;获取所述原始配置数据,并对所述原始配置数据进行加密,得到所述加密后原始配置数据;将所述加密后原始配置数据存储到目标数据库中;利用所述随机数,从所述备用文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址;根据所述目标文件地址的数量,将所述加密后原始配置数据分成相应数量的片段,并将所述片段依次存储到所述目标文件地址中。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述随机数和预设公式,确定出用于存储所述加密后原始配置数据的目标文件地址的数量;从所述备用文件列表中确定出相应数量的目标文件地址,以存储所述加密后原始配置数据;其中,所述预设公式为n=M%N,n表示所述目标地址的数量,M表示所述随机数,N表示所述备用文件列表中的文件地址总数量,%表示取余运算。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述预设***中的get接口,分别从所述目标数据库和所述备用文件列表中读取所述更新后配置数据,并进行解密,对应得到第一解密数据和第二解密数据;将所述第一解密数据和第二解密数据进行比对。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种软件防破解方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种软件防破解方法,其特征在于,应用于嵌入目标软件中的预设***,包括:
获取由激活后的所述目标软件的正常运行形成的变化配置数据;
将所述变化配置数据进行加密,得到加密后变化配置数据;
利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述加密后原始配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后原始配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;
将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;
如果所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
2.根据权利要求1所述的软件防破解方法,其特征在于,所述获取由目标软件的正常运行形成的变化配置数据,包括:
利用所述预设***中的set接口获取由激活后的所述目标软件的正常运行形成的变化配置数据。
3.根据权利要求2所述的软件防破解方法,其特征在于,所述利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,包括:
利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的,包括目标软件版本数据、激活码失效时间数据、安装所述目标软件的机器对应的机器码数据、长度为预设长度的随机数、所述目标软件安装的设备数、激活时间数据以及奇偶校验数据的加密后原始配置数据。
4.根据权利要求2所述的软件防破解方法,其特征在于,所述将所述变化配置数据进行加密,得到加密后变化配置数据,包括:
利用非对称加密算法将所述变化配置数据进行加密,得到加密后变化配置数据。
5.根据权利要求3所述的软件防破解方法,其特征在于,所述获取由目标软件的正常运行形成的变化配置数据之前,还包括:
利用激活码激活所述目标软件,以得到所述目标软件的原始配置数据;
对所述原始配置数据进行加密,得到所述加密后原始配置数据;
将所述加密后原始配置数据存储到目标数据库中;
利用所述随机数,从所述备用文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址;
根据所述目标文件地址的数量,将所述加密后原始配置数据分成相应数量的片段,并将所述片段依次存储到所述目标文件地址中。
6.根据权利要求5所述的软件防破解方法,其特征在于,所述利用所述随机数,从所述备用分布式冗余加密文件列表中确定出用于存储所述加密后原始配置数据的目标文件地址,包括:
利用所述随机数和预设公式,确定出用于存储所述加密后原始配置数据的目标文件地址的数量;
从所述备用文件列表中确定出相应数量的目标文件地址,以存储所述加密后原始配置数据;
其中,所述预设公式为n=M%N,n表示所述目标地址的数量,M表示所述随机数,N表示所述备用文件列表中的文件地址总数量,%表示取余运算。
7.根据权利要求2至6任一项所述的软件防破解方法,其特征在于,所述将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对,包括:
利用所述预设***中的get接口,分别从所述目标数据库和所述备用文件列表中读取所述更新后配置数据,并进行解密,对应得到第一解密数据和第二解密数据;
将所述第一解密数据和第二解密数据进行比对。
8.一种软件防破解装置,其特征在于,包括:
数据获取模块,用于获取由目标软件的正常运行形成的变化配置数据;
加密模块,用于将所述变化配置数据进行加密,得到加密后变化配置数据;
数据更新模块,用于利用所述加密后变化配置数据更新目标数据库和备用文件列表中预先保存的加密后原始配置数据,得到更新后配置数据;其中,所述加密后原始配置数据为对利用激活码激活所述目标软件后得到的原始配置数据进行加密后得到的数据,所述备用文件列表中的所述目标配置数据为预先按照分片存储方式存储到所述备用文件列表中的加密后原始配置数据,并且,所述备用文件列表中的文件地址总数量大于所述加密后原始配置数据对应的文件片段数量;
数据比对模块,用于将所述目标数据库中的所述更新后配置数据对应的第一解密数据与所述备用文件列表中的所述更新后配置数据对应的第二解密数据进行比对;
启用控制模块,用于当所述第一解密数据与所述第二解密数据不相同,则禁止启用所述目标软件,并要求重新激活所述目标软件。
9.一种软件防破解设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至7任一项所述的软件防破解方法。
10.一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的软件防破解方法。
CN201910968794.3A 2019-10-12 2019-10-12 一种软件防破解方法、装置、设备、介质 Pending CN110795702A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910968794.3A CN110795702A (zh) 2019-10-12 2019-10-12 一种软件防破解方法、装置、设备、介质
PCT/CN2020/092844 WO2021068519A1 (zh) 2019-10-12 2020-05-28 一种软件防破解方法、装置、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910968794.3A CN110795702A (zh) 2019-10-12 2019-10-12 一种软件防破解方法、装置、设备、介质

Publications (1)

Publication Number Publication Date
CN110795702A true CN110795702A (zh) 2020-02-14

Family

ID=69439076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910968794.3A Pending CN110795702A (zh) 2019-10-12 2019-10-12 一种软件防破解方法、装置、设备、介质

Country Status (2)

Country Link
CN (1) CN110795702A (zh)
WO (1) WO2021068519A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021068519A1 (zh) * 2019-10-12 2021-04-15 山东英信计算机技术有限公司 一种软件防破解方法、装置、设备、介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067839A (zh) * 2007-04-27 2007-11-07 哈尔滨工业大学 互联网作业软件***防盗版方法
CN101441692A (zh) * 2008-11-21 2009-05-27 北京市研祥兴业国际智能科技有限公司 实现计算机硬件和软件绑定的方法
CN103455764A (zh) * 2013-08-27 2013-12-18 无锡华御信息技术有限公司 一种基于文件分割合并技术的文件加密以及解密***
CN106874743A (zh) * 2016-12-29 2017-06-20 上海雷塔智能科技有限公司 一种智能卡密码保存及提取的方法及***
CN109886040A (zh) * 2019-01-24 2019-06-14 北京融链科技有限公司 数据处理方法、装置、存储介质及处理器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102219B (zh) * 2007-07-30 2010-06-23 华为技术有限公司 软件升级***以及软件升级方法
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
CN106302702B (zh) * 2016-08-10 2020-03-20 华为技术有限公司 数据的分片存储方法、装置及***
CN108847926A (zh) * 2018-06-22 2018-11-20 武汉斗鱼网络科技有限公司 一种客户端安全检测方法、装置及客户端设备
CN110795702A (zh) * 2019-10-12 2020-02-14 山东英信计算机技术有限公司 一种软件防破解方法、装置、设备、介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067839A (zh) * 2007-04-27 2007-11-07 哈尔滨工业大学 互联网作业软件***防盗版方法
CN101441692A (zh) * 2008-11-21 2009-05-27 北京市研祥兴业国际智能科技有限公司 实现计算机硬件和软件绑定的方法
CN103455764A (zh) * 2013-08-27 2013-12-18 无锡华御信息技术有限公司 一种基于文件分割合并技术的文件加密以及解密***
CN106874743A (zh) * 2016-12-29 2017-06-20 上海雷塔智能科技有限公司 一种智能卡密码保存及提取的方法及***
CN109886040A (zh) * 2019-01-24 2019-06-14 北京融链科技有限公司 数据处理方法、装置、存储介质及处理器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021068519A1 (zh) * 2019-10-12 2021-04-15 山东英信计算机技术有限公司 一种软件防破解方法、装置、设备、介质

Also Published As

Publication number Publication date
WO2021068519A1 (zh) 2021-04-15

Similar Documents

Publication Publication Date Title
JP6595822B2 (ja) 情報処理装置及びその制御方法
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
US8332650B2 (en) Systems and methods for setting and resetting a password
US9443111B2 (en) Device security using an encrypted keystore data structure
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
US20100058073A1 (en) Storage system, controller, and data protection method thereof
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US20140059679A1 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
US20020157010A1 (en) Secure system and method for updating a protected partition of a hard drive
US8516574B2 (en) Software update system, management apparatus, recording medium, and integrated circuit
US8745735B2 (en) Monitoring system, program-executing device, monitoring program, recording medium and integrated circuit
JP2008257691A (ja) ストレージデバイスのデータ暗号化およびデータアクセスのシステムおよび方法
US20080289038A1 (en) Method and apparatus for checking integrity of firmware
CN110008659B (zh) 软件许可的离线管理方法、装置、计算机设备及存储介质
CN109445705B (zh) 固件认证方法及固态硬盘
CN101542972A (zh) 能够传送权限对象的装置和便携式存储装置及传送权限对象的方法
CN103403729A (zh) 唯一代码签名密钥的安全管理和个性化
US20200233676A1 (en) Bios management device, bios management system, bios management method, and bios management program-stored recording medium
CN110795702A (zh) 一种软件防破解方法、装置、设备、介质
CN110727940A (zh) 一种电子设备密码管理方法、装置、设备及存储介质
KR101405915B1 (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
US11468159B2 (en) Memory system
JP2009284231A (ja) 鍵生成装置、鍵生成方法及び鍵生成プログラム、並びに、電子機器
CN113127814B (zh) 软件防抄方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200214