CN114117364B - 一种离线的软件许可控制方法及系统 - Google Patents

一种离线的软件许可控制方法及系统 Download PDF

Info

Publication number
CN114117364B
CN114117364B CN202210082477.3A CN202210082477A CN114117364B CN 114117364 B CN114117364 B CN 114117364B CN 202210082477 A CN202210082477 A CN 202210082477A CN 114117364 B CN114117364 B CN 114117364B
Authority
CN
China
Prior art keywords
software
license
host
data
encrypted data
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.)
Active
Application number
CN202210082477.3A
Other languages
English (en)
Other versions
CN114117364A (zh
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.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information 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 Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202210082477.3A priority Critical patent/CN114117364B/zh
Publication of CN114117364A publication Critical patent/CN114117364A/zh
Application granted granted Critical
Publication of CN114117364B publication Critical patent/CN114117364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

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

Abstract

本发明公开了一种离线的软件许可控制方法及系统,通过将许可数据加密后写入磁盘的方式有效避免了文件系统分析类软件对许可数据的获取,同时通过周期性的修改许可数据能够有效防止用户通过拷贝的方式绕过对软件许可时间的限制,此外,通过在许可数据中增加软件首次安装的系统时间可以有效防止用户修改系统时间绕过许可时间的限制,有效提高了离线状态软件的许可控制的可靠性。

Description

一种离线的软件许可控制方法及系统
技术领域
本发明属于软件保护技术领域,具体涉及一种离线的软件许可控制方法及系统。
背景技术
软件保护技术是保护知识产权、防止技术泄露的重要手段之一。软件保护技术包含很多不同的分支,主要包括加密、防篡改、软件水印、软件多样化、反逆向技术、虚拟机、基于网络的保护和基于硬件的保护等,目前己经形成了许多基于网络的注册、激活和限时控制的方法。但是,对于软件应用的离线运行场景来说,由于软件应用所运行的物理设备无法接入互联网,所以导致现有的依靠网络进行注册、激活等方式显然不能适用于此类应用模式软件的保护。在这种情况下,对于离线使用的软件,很可能会出现使用者通过修改系统时间、拷贝软件、替换磁盘等方式来多机、长期使用软件等问题。
发明内容
有鉴于此,本发明提供了一种离线的软件许可控制方法及系统,能够在离线状态下实现软件的许可控制。
本发明提供的一种离线的软件许可控制方法,包括以下步骤:
获取许可主机的主机标识信息作为许可主机标识信息,将经过编码的许可主机标识信息及许可使用时间写入待安装软件代码中,待安装软件代码经代码混淆后生所述许可主机的软件安装包;
在许可主机上离线安装所述软件安装包,安装过程中由所述许可主机标识信息得到公私密钥对,采用私钥加密软件许可数据形成软件许可加密数据,将所述软件许可加密数据写入许可主机的磁盘中,将磁盘位置及偏移量写入偏移位置文件,将偏移位置文件加密为偏移位置加密文件,保存所述偏移位置加密文件;所述软件许可数据包括起始时间、累计时间、许可主机标识信息和许可使用时间;
使用软件时,软件根据主机标识信息判断当前主机是否为许可主机,如果不是,则终止软件在当前主机的使用;如果是,则读取所述偏移位置加密文件,若未读取成功则终止软件在当前主机的使用,若读取成功则根据所述偏移位置加密文件查找软件许可加密数据,若未查找成功则终止软件在当前主机的使用,若查找成功则获取当前系统时间,若当前系统时间小于软件许可加密数据中的起始时间则终止软件在当前主机的使用,若当前系统时间不小于软件许可加密数据中的起始时间则判断累计时间是否小于许可使用时间,若不小于则终止软件在当前主机的使用,若小于则周期性更新软件许可加密数据中的累计时间,并将更新后的软件许可加密数据更换地址重新写入磁盘,并同步更新偏移位置加密文件。
进一步地,所述将所述软件许可加密数据写入许可主机的磁盘中的过程包括以下步骤:
计算所述软件许可加密数据的数据量,若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中;若数据量大于许可主机的分配单元大小,则将所述软件许可加密数据划分为多个许可加密数据块,将许可加密数据块分别写入多个空闲分配单元中。
进一步地,所述空闲分配单元位于具有日志功能的文件系统中的用于存储日志文件的磁盘块中。
进一步地,所述若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中的过程为,将所述软件许可加密数据划分为设定数量的子数据块,再将子数据库分别写入不同的空闲分配单元中。
进一步地,所述偏移位置文件中保存的磁盘位置包括起始地址和结束地址。
本发明提供的一种离线的软件许可控制系统,包括主机信息获取模块、软件安装包生成模块、软件许可数据生成模块、数据加解密模块、软件许可加密数据读写模块、关键数据存储模块及许可数据验证模块;
所述主机信息获取模块,用于获取主机标识信息,包括主机的CPU序列号和硬盘序列号;
所述软件安装包生成模块,用于将许可主机的经过编码的主机标识信息及许可使用时间写入软件代码,再将软件代码进行代码混淆后形成软件安装包;
所述软件许可数据生成模块,用于在软件安装包的安装过程中获取当前的系统时间作为起始时间、初始化累计时间,由起始时间、累计时间、主机标识信息和许可使用时间组成软件许可数据,所述累计时间表示软件实际使用的总时间;
所述数据加解密模块,用于根据许可主机的主机标识信息生成公私钥对,采用私钥加密所述软件许可数据生成模块生成的软件许可数据形成软件许可加密数据,采用私钥加密偏移位置文件生成偏移位置加密文件;采用公钥解密数据;
所述软件许可加密数据读写模块,用于将所述软件许可加密数据写入许可主机的磁盘中,将磁盘位置及偏移量写入偏移位置文件;擦除磁盘中原有软件许可加密数据;
所述关键数据存储模块,用于存储许可主机的主机标识信息及许可使用时间;
所述许可数据验证模块,用于在软件的使用过程中根据主机标识信息判断当前主机是否为许可主机,如果不是,则终止软件在当前主机的使用;如果是,则读取所述偏移位置加密文件,若未读取成功则终止软件在当前主机的使用,若读取成功则根据所述偏移位置加密文件查找软件许可加密数据,若未查找成功则终止软件在当前主机的使用,若查找成功则获取当前系统时间,若当前系统时间小于软件许可加密数据中的系统时间是则终止软件在当前主机的使用,若当前系统时间不小于软件许可加密数据中的系统时间则判断累计时间是否小于许可使用时间,若不小于则终止软件在当前主机的使用,若小于则周期性更新软件许可加密数据中的累计时间,并将更新后的软件许可加密数据发送至所述软件许可加密数据读写模块。
进一步地,所述软件许可加密数据读写模块将所述软件许可加密数据写入许可主机的磁盘中的方式为:
计算所述软件许可加密数据的数据量,若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中;若数据量大于许可主机的分配单元大小,则将所述软件许可加密数据划分为多个许可加密数据块,将许可加密数据块分别写入多个空闲分配单元中。
进一步地,所述空闲分配单元位于具有日志功能的文件系统中的用于存储日志文件的磁盘块中。
进一步地,所述若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中的过程为,将所述软件许可加密数据划分为设定数量的子数据块,再将子数据库分别写入不同的空闲分配单元中。
有益效果:
本发明通过将许可数据加密后写入磁盘的方式有效避免了文件系统分析类软件对许可数据的获取,同时通过周期性的修改许可数据能够有效防止用户通过拷贝的方式绕过对软件许可时间的限制,此外,通过在许可数据中增加软件首次安装的系统时间可以有效防止用户修改系统时间绕过许可时间的限制,有效提高了离线状态软件的许可控制的可靠性。
附图说明
图1为本发明提供的一种离线的软件许可控制方法的流程图。
图2为本发明提供的一种离线的软件许可控制系统的结构图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供的一种离线的软件许可控制方法及系统,针对的软件生产者允许软件用户在被许可的主机上离线运行其开发的软件,且软件生产者能够获取许可主机的主机标识信息的情况。一般情况下,软件生产者仅允许软件用户在特定主机上运行软件,该特定主机即为许可主机。
本发明提供的一种离线的软件许可控制方法,流程如图1所示,具体包括以下步骤:
步骤1、软件生产者获取许可主机的主机标识信息作为许可主机标识信息,将许可主机标识信息及许可使用时间采用MD5信息摘要算法编码后写入待安装软件中,再将软件进行代码混淆后形成针对该许可主机的软件安装包。
本发明中的主机标识信息包括CPU序列号和硬盘序列号等计算机主机的信息。软件生产者预先获取并保存许可主机的CPU序列号,保存的数据格式如:‘09C1B27D09C1B27E09C1B27F’,以及许可主机的所有硬盘序列号,保存的数据格式如:[‘BFEBFBFF000306A9’,…],当存在多个硬盘时追加在上述数据格式中。对于编码后的CPU序列号和硬盘序列号,可分别截取前16位保存。
步骤2、软件用户在许可主机上离线安装步骤1生成的软件安装包,安装过程包括以下步骤:
步骤2.1、软件根据记录的许可主机标识信息计算得到公私密钥对。
本发明采用MD5信息摘要算法对许可主机标识信息中的CPU序列号和硬盘序列号分别进行编码后,截取前16位,得到公私密钥对。
步骤2.2、获取当前的系统时间作为起始时间,将起始时间同步到累计时间中,其中,起始时间表示许可主机实际安装软件的系统时间,累计时间(单位为秒)表示软件实际使用的总时长。由起始时间、累计时间、许可主机标识信息和许可使用时间组成软件许可数据。
进一步地为了便于存储与读取,本发明中采用Json键值对格式保存软件许可数据,数据格式如下所示:
{
‘StartTime’:1690833004 #起始时间
‘CollectTime’:1690833104 #累计时间
‘ComputerID’ :09C1B27D09C1B27E09C1B27F, [‘BFEBFBFF000306A9’,…]
‘PermitTime’: 1690833304 #许可使用时间300秒
}。
步骤2.3、采用步骤2.1生成的私钥加密步骤2.2生成的软件许可数据形成软件许可加密数据。
加密过程可采用现有的对称加密算法处理,本发明优选采用AES128对称加密算法实现对软件许可数据的加密。
步骤2.4、计算软件许可加密数据的数据量,若数据量不大于许可主机的分配单元大小,则在许可主机磁盘中查找到空闲分配单元,并将软件许可加密数据写入空闲分配单元中,以许可加密数据块的大小作为偏移量,记录使用的空闲分配单元的地址及偏移量作为数据分配单元地址对;若数据量大于软件用户主机的分配单元大小,则以分配单元大小为单位将软件许可加密数据划分为多个许可加密数据块,许可加密数据块的数量即为软件许可加密数据所需占用的软件用户主机磁盘的数据块的数量,在软件用户主机磁盘中查找到相同数量的空闲分配单元,将许可加密数据块分别写入空闲分配单元中,以许可加密数据块的大小作为偏移量,记录使用的空闲分配单元的地址及偏移量作为数据分配单元地址对。将记录的作为数据分配单元地址对按顺序写入偏移位置文件,采用私钥加密偏移位置文件后保存。
为了进一步提高软件许可加密数据存储的可靠性,本发明还采用将软件许可加密数据存储在NTFS、Ext4等具有日志功能的文件系统中的用于存储日志文件的磁盘块内,根据文件系统的数据结构获取日志文件对应的磁盘块。具体来说,在日志文件所在的磁盘块内查找空闲分配单元,将软件许可加密数据写入空闲分配单元中。此外,还可以通过将相同数据备份在不同的空闲分配单元,进一步提高数据的可靠性。
为了进一步提高软件许可加密数据存储的安全性,对于数据量不大于软件用户主机的分配单元大小的情况,还可以将软件许可加密数据划分为设定数量的子数据块,再将子数据块分别写入不同的空闲分配单元中。
为了能够验证磁盘中存储文件的完整性,偏移位置文件中存储的数据分配单元地址可包括起始地址和结束地址,当起始地址与结束地址的差值与偏移量相一致时说明磁盘中存储的信息是完整的。
步骤3、在软件用户使用软件时,软件分析校验软件用户的过程包括以下步骤:
步骤3.1、软件获取当前主机的主机标识信息包括CPU序列号和硬盘序列号,与软件中保存的许可主机标识信息进行比对,如果不符合,则认为当前主机为非法主机,将终止软件在当前主机的使用;否则,执行步骤3.2。
步骤3.2、软件读取偏移位置文件,若未找到偏移位置文件,则认为当前软件用户为非法用户,将终止软件在当前主机的使用。
若找到偏移位置文件,则采用公钥解密偏移位置文件,根据偏移位置文件中记录的数据分配单元地址,查找存储在磁盘中的软件许可加密数据,若成功获取了软件许可加密数据,则采用步骤1生成的公钥对软件许可加密数据进行解密,得到软件许可数据,执行步骤3.3;若未找到软件许可加密数据,则说明用户篡改了偏移位置文件,将终止软件在当前主机的使用。
步骤3.3、获取用户主机当前的系统时间,若系统时间小于步骤3.2获取的软件许可数据中的起始时间,则认为软件用户修改了系统时间,将终止软件在当前主机的使用;否则,判断累计时间与许可使用时间的关系,如果小于则执行步骤3.4,如果不小于,则认为软件用户已到达使用期限,将终止软件在当前主机的使用。
此外,累计时间还可以采用在起始时间上累加实际时间的方式计算得到,此时,步骤3.4中若当前的系统时间小于累计时间,则认为软件用户修改了系统时间,将终止软件在当前主机的使用。
步骤3.4、等待设定的时间间隔后,更新软件许可数据中的累计时间,并将更新后的软件许可数据加密形成更新后的软件许可加密数据,计算软件许可数据加密的数据量确定偏移量;确定磁盘内新的空闲分配单元作为软件许可加密数据的存储位置,根据偏移量将更新后的软件许可加密数据写入磁盘内,擦除磁盘原有软件许可加密数据;再将更新的位置信息写入偏移位置文件。
为了进一步提高软件许可数据的安全性,上述时间间隔可以设置为较短的时间,例如,设置为60秒。
步骤3.5、等待设定的时间间隔后,若软件未停止执行,则执行步骤3.2;否则,退出软件的执行过程。
本发明提供的一种离线的软件许可控制系统,结构如图2所示,包括主机信息获取模块、软件安装包生成模块、软件许可数据生成模块、数据加解密模块、软件许可加密数据读写模块、关键数据存储模块及许可数据验证模块。
其中,主机信息获取模块,用于获取软件用户待安装或运行软件主机的主机标识信息,包括主机的CPU序列号和硬盘序列号。
软件安装包生成模块,用于将许可主机的主机标识信息及许可使用时间写入软件,再将软件的源代码进行代码混淆后形成针对许可主机的软件安装包。
软件许可数据生成模块,用于在软件安装包的安装过程中获取当前的系统时间作为起始时间,初始化累计时间,其中,起始时间表示软件用户安装软件的时间,累计时间(单位为秒)表示软件实际使用的总时间。由起始时间、累计时间、主机标识信息和许可使用时间组成软件许可数据。
数据加解密模块,用于根据许可主机的主机标识信息生成加密所需的公私钥对,采用私钥加密软件许可数据生成模块生成的软件许可数据和软件许可加密数据读写模块生成的偏移位置文件,分别形成软件许可加密数据和偏移位置加密文件;采用公钥解密软件许可加密数据和偏移位置加密文件为软件许可数据和偏移位置文件。
软件许可加密数据读写模块,用于计算软件许可加密数据的数据量,若数据量不大于许可主机的分配单元大小,则在许可主机磁盘中查找到空闲分配单元,并将软件许可加密数据写入空闲分配单元中,以许可加密数据块的大小作为偏移量,记录使用的空闲分配单元的地址及偏移量作为数据分配单元地址对;若数据量大于软件用户主机的分配单元大小,则以分配单元大小为单位将软件许可加密数据划分为多个许可加密数据块,许可加密数据块的数量即为软件许可加密数据所需占用的软件用户主机磁盘的数据块的数量,在软件用户主机磁盘中查找到相同数量的空闲分配单元,将许可加密数据块分别写入空闲分配单元中,以许可加密数据块的大小作为偏移量,记录使用的空闲分配单元的地址及偏移量作为数据分配单元地址对;擦除磁盘中原有软件许可加密数据;将记录的作为数据分配单元地址对按顺序写入偏移位置文件,采用数据加解密模块对偏移位置文件加密后得到偏移位置加密文件,将偏移位置加密文件保存在确定位置。
为了进一步提高软件许可加密数据存储的可靠性,软件许可加密数据读写模块采用将软件许可加密数据存储在NTFS、Ext4等具有日志功能的文件系统中的用于存储日志文件的磁盘块内。具体来说,在日志文件所在的磁盘块内查找空闲分配单元,将软件许可加密数据写入空闲分配单元中。此外,还可以通过将相同数据备份在不同的空闲分配单元,进一步提高数据的可靠性。
为了进一步提高软件许可加密数据存储的安全性,对于数据量不大于软件用户主机的分配单元大小的情况,软件许可加密数据读写模块将软件许可加密数据划分为设定数量的子数据块,再将子数据块分别写入不同的空闲分配单元中。
此外,为了能够验证磁盘中存储文件的完整性,软件许可加密数据读写模块在偏移位置文件中存储的数据分配单元地址包括起始地址和结束地址,当起始地址与结束地址的差值与偏移量相一致时说明磁盘中存储的信息是完整的。
关键数据存储模块,用于存储许可主机的主机标识信息及许可使用时间。
许可数据验证模块,用于验证当前使用软件的主机是否为合法主机。
许可数据验证模块的验证方式如下:
首先获取当前主机的主机标识信息包括CPU序列号和硬盘序列号,与关键数据存储模块中保存的主机标识信息进行比对,如果不符合,则认为当前主机为非法主机,终止软件在当前主机的使用;如果符合,则读取偏移位置加密文件,若未找到偏移位置加密文件,则认为当前软件用户为非法用户,终止软件在当前主机的使用;若找到偏移位置加密文件,则通知数据加解密模块解密偏移位置加密文件为偏移位置文件,根据偏移位置文件中记录的数据分配单元地址,查找存储在磁盘中的软件许可加密数据,若未找到,则说明用户篡改了偏移位置文件,终止软件在当前主机的使用;若找到,则通知数据加解密模块解密软件许可加密数据得到软件许可数据,获取用户主机当前的系统时间,若系统时间小于软件许可数据中记录的起始时间,则认为软件用户修改了系统时间,终止软件在当前主机的使用;否则,若累计时间不小于许可使用时间,则认为软件用户已到达使用期限,终止软件在当前主机的使用;若累计时间小于许可使用时间则循环等待设定的时间间隔后,更新软件许可数据中的累计时间,并将更新后的软件许可数据加密形成更新后的软件许可加密数据,将其发送至软件许可加密数据读写模块,直到软件停止执行。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种离线的软件许可控制方法,其特征在于,包括以下步骤:
获取许可主机的主机标识信息作为许可主机标识信息,将经过编码的许可主机标识信息及许可使用时间写入待安装软件代码中,待安装软件代码经代码混淆后生所述许可主机的软件安装包;
在许可主机上离线安装所述软件安装包,安装过程中由所述许可主机标识信息得到公私密钥对,采用私钥加密软件许可数据形成软件许可加密数据,将所述软件许可加密数据写入许可主机的磁盘中,将磁盘位置及偏移量写入偏移位置文件,将偏移位置文件加密为偏移位置加密文件,保存所述偏移位置加密文件;所述软件许可数据包括起始时间、累计时间、许可主机标识信息和许可使用时间;
使用软件时,软件根据主机标识信息判断当前主机是否为许可主机,如果不是,则终止软件在当前主机的使用;如果是,则读取所述偏移位置加密文件,若未读取成功则终止软件在当前主机的使用,若读取成功则根据所述偏移位置加密文件查找软件许可加密数据,若未查找成功则终止软件在当前主机的使用,若查找成功则获取当前系统时间,若当前系统时间小于软件许可加密数据中的起始时间则终止软件在当前主机的使用,若当前系统时间不小于软件许可加密数据中的起始时间则判断累计时间是否小于许可使用时间,若不小于则终止软件在当前主机的使用,若小于则周期性更新软件许可加密数据中的累计时间,并将更新后的软件许可加密数据更换地址重新写入磁盘,并同步更新偏移位置加密文件。
2.根据权利要求1所述的软件许可控制方法,其特征在于,所述将所述软件许可加密数据写入许可主机的磁盘中的过程包括以下步骤:
计算所述软件许可加密数据的数据量,若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中;若数据量大于许可主机的分配单元大小,则将所述软件许可加密数据划分为多个许可加密数据块,将许可加密数据块分别写入多个空闲分配单元中。
3.根据权利要求2所述的软件许可控制方法,其特征在于,所述空闲分配单元位于具有日志功能的文件系统中的用于存储日志文件的磁盘块中。
4.根据权利要求2所述的软件许可控制方法,其特征在于,所述若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中的过程为,将所述软件许可加密数据划分为设定数量的子数据块,再将子数据库分别写入不同的空闲分配单元中。
5.根据权利要求2所述的软件许可控制方法,其特征在于,所述偏移位置文件中保存的磁盘位置包括起始地址和结束地址。
6.一种离线的软件许可控制系统,其特征在于,包括主机信息获取模块、软件安装包生成模块、软件许可数据生成模块、数据加解密模块、软件许可加密数据读写模块、关键数据存储模块及许可数据验证模块;
所述主机信息获取模块,用于获取主机标识信息,包括主机的CPU序列号和硬盘序列号;
所述软件安装包生成模块,用于将许可主机的经过编码的主机标识信息及许可使用时间写入软件代码,再将软件代码进行代码混淆后形成软件安装包;
所述软件许可数据生成模块,用于在软件安装包的安装过程中获取当前的系统时间作为起始时间、初始化累计时间,由起始时间、累计时间、主机标识信息和许可使用时间组成软件许可数据,所述累计时间表示软件实际使用的总时间;
所述数据加解密模块,用于根据许可主机的主机标识信息生成公私钥对,采用私钥加密所述软件许可数据生成模块生成的软件许可数据形成软件许可加密数据,采用私钥加密偏移位置文件生成偏移位置加密文件;采用公钥解密数据;
所述软件许可加密数据读写模块,用于将所述软件许可加密数据写入许可主机的磁盘中,将磁盘位置及偏移量写入偏移位置文件;擦除磁盘中原有软件许可加密数据;
所述关键数据存储模块,用于存储许可主机的主机标识信息及许可使用时间;
所述许可数据验证模块,用于在软件的使用过程中根据主机标识信息判断当前主机是否为许可主机,如果不是,则终止软件在当前主机的使用;如果是,则读取所述偏移位置加密文件,若未读取成功则终止软件在当前主机的使用,若读取成功则根据所述偏移位置加密文件查找软件许可加密数据,若未查找成功则终止软件在当前主机的使用,若查找成功则获取当前系统时间,若当前系统时间小于软件许可加密数据中的系统时间是则终止软件在当前主机的使用,若当前系统时间不小于软件许可加密数据中的系统时间则判断累计时间是否小于许可使用时间,若不小于则终止软件在当前主机的使用,若小于则周期性更新软件许可加密数据中的累计时间,并将更新后的软件许可加密数据发送至所述软件许可加密数据读写模块。
7.根据权利要求6所述的软件许可控制系统,其特征在于,所述软件许可加密数据读写模块将所述软件许可加密数据写入许可主机的磁盘中的方式为:
计算所述软件许可加密数据的数据量,若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中;若数据量大于许可主机的分配单元大小,则将所述软件许可加密数据划分为多个许可加密数据块,将许可加密数据块分别写入多个空闲分配单元中。
8.根据权利要求7所述的软件许可控制系统,其特征在于,所述空闲分配单元位于具有日志功能的文件系统中的用于存储日志文件的磁盘块中。
9.根据权利要求7所述的软件许可控制系统,其特征在于,所述若数据量不大于许可主机的分配单元大小,则将所述软件许可加密数据写入空闲分配单元中的过程为,将所述软件许可加密数据划分为设定数量的子数据块,再将子数据库分别写入不同的空闲分配单元中。
CN202210082477.3A 2022-01-24 2022-01-24 一种离线的软件许可控制方法及系统 Active CN114117364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210082477.3A CN114117364B (zh) 2022-01-24 2022-01-24 一种离线的软件许可控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210082477.3A CN114117364B (zh) 2022-01-24 2022-01-24 一种离线的软件许可控制方法及系统

Publications (2)

Publication Number Publication Date
CN114117364A CN114117364A (zh) 2022-03-01
CN114117364B true CN114117364B (zh) 2022-03-29

Family

ID=80360808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210082477.3A Active CN114117364B (zh) 2022-01-24 2022-01-24 一种离线的软件许可控制方法及系统

Country Status (1)

Country Link
CN (1) CN114117364B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114564702A (zh) * 2022-04-24 2022-05-31 北京麟卓信息科技有限公司 一种基于固件的离线软件许可控制方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479304A (zh) * 2010-11-26 2012-05-30 深圳市硅格半导体有限公司 软件权限控制方法、客户端及系统
CN104680041A (zh) * 2015-02-06 2015-06-03 浪潮集团有限公司 一种离线软件授权有效性验证方法
CN111191194A (zh) * 2019-12-20 2020-05-22 北京时代民芯科技有限公司 一种多核处理器软件集成开发环境离线使用许可系统
CN111190614A (zh) * 2019-12-26 2020-05-22 北京威努特技术有限公司 一种软件安装的方法及计算机设备
CN111258615A (zh) * 2019-12-26 2020-06-09 北京威努特技术有限公司 工控主机及其软件升级的方法、装置及移动存储介质
CN113254887A (zh) * 2021-06-04 2021-08-13 统信软件技术有限公司 一种应用程序的授权方法、计算设备以及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8275815B2 (en) * 2008-08-25 2012-09-25 International Business Machines Corporation Transactional processing for clustered file systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479304A (zh) * 2010-11-26 2012-05-30 深圳市硅格半导体有限公司 软件权限控制方法、客户端及系统
CN104680041A (zh) * 2015-02-06 2015-06-03 浪潮集团有限公司 一种离线软件授权有效性验证方法
CN111191194A (zh) * 2019-12-20 2020-05-22 北京时代民芯科技有限公司 一种多核处理器软件集成开发环境离线使用许可系统
CN111190614A (zh) * 2019-12-26 2020-05-22 北京威努特技术有限公司 一种软件安装的方法及计算机设备
CN111258615A (zh) * 2019-12-26 2020-06-09 北京威努特技术有限公司 工控主机及其软件升级的方法、装置及移动存储介质
CN113254887A (zh) * 2021-06-04 2021-08-13 统信软件技术有限公司 一种应用程序的授权方法、计算设备以及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《ISO/IEC/IEEE International Standard - Systems and software engineering -- Vocabulary》;IEEE;《ISO/IEC/IEEE 24765:2010(E)》;20101215;第58-60页 *
《一种基于RSA+AES算法实现的软件授权License设计思路(附源码)》;brucevanfdm;《https://zhuanlan.zhihu.com/p/187585495》;20200818;第1-7页 *
《大规模分布式系统脆弱性分析框架研究》;况晓辉等;《计算机科学》;20120630;第39卷(第6期);第1-418页 *
《开放网络环境下敏感数据安全与防泄密关键技术研究》;闫玺玺;《中国博士学位论文全文数据库(电子期刊)》;20130131;信息科技辑I139-28 *

Also Published As

Publication number Publication date
CN114117364A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US5109413A (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
US8200961B2 (en) Securing a flash memory block in a secure device system and method
US6857067B2 (en) System and method for preventing unauthorized access to electronic data
EP0268139A2 (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US8769675B2 (en) Clock roll forward detection
CN112231647A (zh) 一种软件授权验证方法
CN1203394A (zh) 在安全存储区中保护应用程序数据的方法和装置
EP2264640B1 (en) Feature specific keys for executable code
CN101079008A (zh) 移动存储器失泄密防护的方法和系统
CN1610886A (zh) 用于验证的系统和方法
US20060200414A1 (en) Methods of copy protecting software stored on portable memory
CN114117364B (zh) 一种离线的软件许可控制方法及系统
CN102073597B (zh) 一种基于用户身份认证的操作系统盘全盘加密方法
US20090031430A1 (en) Software activation control method
US8490208B2 (en) Method and device for detecting if a computer file has been copied and method and device for enabling such detection
CN114564702A (zh) 一种基于固件的离线软件许可控制方法及装置
JP4638158B2 (ja) 著作権保護システム
US20090222929A1 (en) Method, program, and server for backup and restore
JP4765262B2 (ja) 電子データ保管装置、プログラム
JP2008257279A (ja) ファイルシステムの完全性強化方法
WO1993021582A1 (en) System for protection of software
JP2007249333A (ja) インストール方法、インストール制御プログラム、及び記憶媒体
US20070073623A1 (en) Method of manufacturing application software
CN113486305B (zh) 一种基于过滤、拦截及加密技术的软件License验证方法及系统

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
GR01 Patent grant
GR01 Patent grant