CN112528236B - 基于虚拟机的应用软件授权方法 - Google Patents
基于虚拟机的应用软件授权方法 Download PDFInfo
- Publication number
- CN112528236B CN112528236B CN202011504687.4A CN202011504687A CN112528236B CN 112528236 B CN112528236 B CN 112528236B CN 202011504687 A CN202011504687 A CN 202011504687A CN 112528236 B CN112528236 B CN 112528236B
- Authority
- CN
- China
- Prior art keywords
- target
- application software
- code
- authorization
- verified
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000013475 authorization Methods 0.000 claims abstract description 118
- 238000012795 verification Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 15
- 238000003780 insertion Methods 0.000 claims description 14
- 230000037431 insertion Effects 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 25
- 238000012545 processing Methods 0.000 abstract description 16
- 238000004590 computer program Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例涉及虚拟机安全技术领域,公开了一种基于虚拟机的应用软件授权方法,该方法包括:接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;提取所述待验证授权证书文件中包含的待验证注册码;对所述待验证注册码进行解密,得到待验证硬件码;通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理;当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。通过上述方式,本发明实施例实现了虚拟机软件的授权过程的反编译的难度。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种基于虚拟机的应用软件授权方法、装置、设备以及计算机可读存储介质。
背景技术
目前在虚拟机上部署应用系统中的软件的需求逐渐增多,为了保证数据传输的安全性,在部署应用软件前需要进行授权文件的验证。
现有技术中一般是将虚拟机的硬件信息获取后,由授权文件生成软件生成包含有该硬件信息的授权文件,并将该授权文件保存在应用软件中。应用软件在认证过程中,首先获取应用软件所在虚拟机的硬件信息,并通过比较授权文件中记录的硬件信息与当前获得的硬件信息是否相同,来确定授权文件的认证结果。
这样做的问题在于由于现有技术中获取虚拟机的硬件信息以及进行授权文件的验证的代码逻辑很容易被逆向编译,这样就使得应用软件的授权方式容易被破解,破解后授权文件容易被窃取和伪造,从而影响了虚拟机上的应用软件的安全性。
发明内容
鉴于上述问题,本发明实施例提供了一种基于虚拟机的应用软件授权方法、装置、设备以及计算机可读存储介质,用于解决现有技术中存在的虚拟机的应用软件授权过程易被反编译导致虚拟机使用的安全性不高的问题。
根据本发明实施例的一个方面,提供了一种基于虚拟机的应用软件授权方法,所述方法包括:
接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取所述待验证授权证书文件中包含的待验证注册码;
对所述待验证注册码进行解密,得到待验证硬件码;
通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理;
当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,所述方法还包括:
接收所述目标应用软件发送的注册请求;
通过所述预设程序获取所述目标硬件码;
获取所述目标应用软件的鉴权信息;
根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码;
对所述授权注册码进行加密,得到所述目标应用软件的待验证硬件码。
在一种可选的方式中,所述方法还包括:
获取初始程序,将所述初始程序划分为多个核心程序块;
确定各个所述核心程序块的功能属性信息;
根据所述功能属性信息分别确定各个所述核心程序块对应的花指令以及插入位点;
将所述花指令分别添加到所述插入位点中,得到所述预设程序。
在一种可选的方式中,所述方法还包括:
获取所述目标应用软件的历史授权信息;
根据所述历史授权信息确定所述目标应用软件的最近一次授权时间;
获取所述目标虚拟机的系统时间,将所述系统时间与所述最近一次授权时间进行匹配;
当所述系统时间与所述最近一次授权时间匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,所述方法还包括:
对所述目标硬件码进行加密,得到所述目标虚拟机的第一硬件码;
对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码;
根据所述第二硬件码和所述鉴权信息确定所述目标应用软件的目标注册码。
在一种可选的方式中,所述方法还包括:
根据第一密钥对所述目标硬件码进行加密,得到初始硬件码;
对所述初始硬件码进行转换处理,得到所述第一硬件码,所述转换处理包括字符串替换、字符串随机混排。
在一种可选的方式中,所述方法还包括:
获取目标RSA私钥,根据所述目标RSA私钥对所述待验证注册码进行解密得到预解密硬件码;
获取目标AES密钥,根据所述目标AES密钥对所述预解密硬件码进行解密,得到所述待验证硬件码。
根据本发明实施例的另一方面,提供了一种基于虚拟机的应用软件授权装置,包括:
接收模块,用于接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取模块,用于提取所述待验证授权证书文件中包含的待验证注册码;
解密模块,用于对所述待验证注册码进行解密,得到待验证硬件码;
匹配模块,用于通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理;
授权模块,用于当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
根据本发明实施例的另一方面,提供了一种基于虚拟机的应用软件授权设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如前述任意一项实施例所述的基于虚拟机的应用软件授权方法的操作。
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在基于虚拟机的应用软件授权设备上运行时,使得基于虚拟机的应用软件授权设备执行如前述任意一项实施例所述的基于虚拟机的应用软件授权方法的操作。
本发明实施例通过接收目标虚拟机上运行的目标应用软件发送的授权请求,授权请求中携带有目标应用软件对应的待验证授权证书文件,首先提取出待验证授权证书文件中包含的待验证注册码。然后对待验证注册码进行解密,得到待验证硬件码。再通过预设的经过反汇编处理的程序获取目标虚拟机的目标硬件码,将待验证硬件码与目标硬件码进行匹配,最后当待验证硬件码与目标硬件码匹配时,对目标应用软件进行授权。
区别于现有技术中的直接获取硬件信息进行加密得到授权文件,以及对授权文件进行解密和匹配,整个应用软件的授权和验证过程能够轻易被反编译、导致的软件以及虚拟机的使用不安全的问题,本发明通过对整个获取硬件信息进行加密和获取授权文件进行解密校验的代码进行反编译处理,从而提高了虚拟机软件的破解的难度,从而提高了虚拟机应用软件的使用的安全性。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的基于虚拟机的应用软件授权方法的流程示意图;
图2示出了本发明实施例提供的基于虚拟机的应用软件授权装置的结构示意图;
图3示出了本发明实施例提供的基于虚拟机的应用软件授权设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
图1示出了本发明实施例提供的基于虚拟机的应用软件授权方法的流程图,该方法由验证服务器执行。该验证服务器与应用软件运行的虚拟机建立了通信连接。如图1所示,该方法包括以下步骤:
步骤110:接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件。
目标虚拟机配置在一个物理机上,在目标虚拟机的应用系统中安装有一或多个应用软件,此处的授权请求指的是某一目标应用软件将持有的授权文件发送给服务器进行验证,使得服务器在验证通过的情况下对目标应用软件进行授权。
在根据目标应用软件发送的授权证书文件的合法性进行验证之前,首先需要提取出目标应用软件的硬件信息,并根据硬件信息按照预设的算法以及授权文件生成步骤生成一个该目标应用软件对应的合法的授权文件,将该合法的授权文件在验证服务器端进行存储。
即在步骤110前还可以包括步骤1101-步骤1104。
步骤1101:接收所述目标应用软件发送的注册请求。
目标应用软件所在的目标虚拟机与前述验证服务器建立了通信连接,通过该通信连接获取注册请求。
步骤1102:通过所述经过反汇编处理的预设程序获取所述目标虚拟机的目标硬件码。
由于目标虚拟机在物理机上的不同模块对应不同的硬件码,如网关硬件码,CPU硬件码等,此处将获取目标硬件码的程序进行反汇编处理,使得破解者难以通过反汇编目标硬件码的获取代码直接得到当前授权文件的生成和验证过程所获取的是何处的哪个维度的硬件码作为此处的目标硬件码。
因此区别于现有技术中的将获取硬件码的过程代码直接暴露在破解者面前,本发明的实施例在进行了反汇编处理后使得试图破解者无法通过逆向获取硬件码的代码,来知道获取虚拟机的硬件码的过程,从而阻挡了破解者通过相同的过程获取虚拟机的目标硬件码和伪造合法授权文件,提高了虚拟机应用软件的安全性。
在本发明的一个实施例中,对获取目标硬件码的预设程序所预先进行的反汇编处理可以是在中增加花指令。
步骤1103:获取所述目标应用软件的鉴权信息。
获取鉴权信息的好处在于,在实际应用中,存在即使是合法授权的目标应用软件,也需要对目标应用软件在授权后的使用过程中的各项操作权限进行限制。比如规定一个目标应用软件最多能在多少台设备上运行(对多少用户数)、目标应用软件的当前合法的授权文件的有效期是多少。将这些与授权文件的使用有关的鉴权信息写入授权文件中进行同步验证,这样可以进一步保证虚拟机上的应用软件的运行的安全性。
在本发明的一个实施例中,鉴权信息包括授权文件的有效时间以及与目标应用软件上的业务权限信息。具体的业务权限信息可以包括:该目标应用软件允许安装的系统数、使用用户数、所允许安装的系统标识等。
步骤1104:根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码。
授权注册码可以是根据预设的注册码算号工具根据注册信息和鉴权信息生成的预设长度的一串字符串。
在本发明的一个实施例中,根据通过反汇编程序获取的虚拟机的硬件信息生成步骤1104还包括步骤11041-11043。
步骤11041:对所述目标硬件码进行加密,得到所述目标虚拟机的第一硬件码。
具体的加密过程可以是首先获取预设的RSA公钥,根据RSA公钥对目标硬件码进行加密。
步骤11042:对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码。
对第一硬件码进行解密的过程可以是通过前述注册码算号工具来完成的。在该注册码算号工具预先包含了的RSA私钥,步骤11042还可以包括以下步骤:根据第一密钥对所述目标硬件码进行加密,得到初始硬件码。在本发明的一个实施例中,此处的第一密钥可以是AES算法的密钥。对所述初始硬件码进行转换处理,得到所述第一硬件码,所述转换处理包括字符串替换、字符串随机混排。
字符串替换可以根据预设的字符对应关系表进行替换,字符对应关系表中存储了字符之间的对应关系。字符串混排即获取一个随机数,根据该随机数将第一硬件码的字符进行打乱处理。
此处对初始硬件码进行进一步转换处理是为了使得硬件码的复杂程度增大,破解者即使在破解了硬件信息和加密过程的代码,也仍需要对按照破解的代码生成的硬件码进行对应的逆向处理,这样就增加了破解者的时间和技术成本。
步骤11043:根据所述第二硬件码和所述鉴权信息确定所述目标应用软件的目标注册码。
可以是将鉴权信息与第二硬件码通过预设的方式组合起来,如采用预设的分隔符进行组合得到目标注册码。
步骤1105:对所述授权注册码进行加密,得到所述目标应用软件的待验证硬件码。
在本发明的一个实施例中,为了进一步提高代码的复杂性,从而从而提高代码的破解难度,以此提高虚拟机运行的安全性,可以对授权注册码进行两次加密,第一次采用AES密钥进行加密,第二次在第一次加密得到的密文的基础上用预设的RSA私钥再次进行加密。其中,与RSA私钥对应的RSA公钥存储于授权文件验证服务器中。
步骤120:提取所述待验证授权证书文件中包含的待验证注册码。
步骤130:对所述待验证注册码进行解密,得到待验证硬件码。
对待验证注册码进行解密的过程可以包括步骤1301-步骤1302。
步骤1301:获取目标RSA私钥,根据所述目标RSA私钥对所述待验证注册码进行解密得到预解密硬件码。
步骤1302:获取目标AES密钥,根据所述目标AES密钥对所述预解密硬件码进行解密,得到所述待验证硬件码。
类似于前述步骤1105中对目标硬件码进行两次加密得到目标注册码的过程,通过步骤1301-1302,对待验证注册码进行两次解密,从而得到待验证硬件码,来和目标硬件码进行比对。
步骤140:通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理。此处获取目标硬件码的过程与步骤1102中的类似,不再赘述。
具体进行反汇编处理可以通过在获取硬件信息的核心代码中随机添加花指令,使得获取硬件信息的代码难以被阅读和反编译。在本发明的一个实施例中,步骤140至少包括步骤1401-步骤1404。
步骤1401:获取初始程序,将所述初始程序划分为多个核心程序块。
此处的初始程序为获取目标虚拟机的目标硬件码的程序。
根据初始程序中包含的数据流向以及每一个功能函数的属性和作用将一或多个功能函数划分为一个核心程序。
步骤1402:确定各个所述核心程序块的功能属性信息。
如初始程序可以分为四个核心程序模块,四个核心程序模块对应的功能属性可以分别是初始化定义模块、参数处理模块、硬件码计算模块以及通信模块等。
步骤1403:根据所述功能属性信息分别确定各个所述核心程序块对应的花指令以及插入位点。
花指令是随机生成的编译时会跳过的垃圾指令,但是花指令在对代码进行反编译的时候会造成极大的困难。根据功能属性信息来确定花指令的好处在于,使得获取代码的每个关键部分都可以得到保护,不会存在破解者可以通过某一部分的核心代码获取到整个代码逻辑,从而对目标硬件码获取以及校验的过程进行复制。
步骤1404:将所述花指令分别添加到所述插入位点中,得到所述预设程序。
步骤150:当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
在本发明的一个实施例中,在验证服务器对目标应用软件进行授权验证之后,除了根据验证结果对目标应用软件进行授权或者拒绝授权以外,还可以将每一次验证过程对应的授权验证信息作为历史授权信息进行保存。
在本发明的另一个实施例中,为了防止文件伪造者通过篡改系统时间,将系统时间推后,多次使用实际上已经过期的授权文件,在确定待验证硬件码和目标硬件码匹配之后,在对目标应用软件进行授权之前,还可以包括步骤1501-步骤1504。
步骤1501:获取所述目标应用软件的历史授权信息。
历史授权信息包括目标应用软件在历史时间周期上的历史验证时间、历史验证结果、历史验证的授权硬件码等。
步骤1502:根据所述历史授权信息确定所述目标应用软件的最近一次授权时间。
步骤1503:获取所述目标虚拟机的系统时间,将所述系统时间与所述最近一次授权时间进行匹配。
步骤1504:当所述系统时间与所述最近一次授权时间匹配时,对所述目标应用软件进行授权。
当系统时间在最近一次授权时间之后时,则确定授权文件的验证过程是正常的,没有试图进行系统时间的修改,则对目标应用软件进行授权。
图2示出了本发明实施例提供的基于虚拟机的应用软件授权装置的结构示意图。如图2所示,该装置200包括:接收模块210、提取模块220和解密模块230、匹配模块240、授权模块250。
接收模块210,用于接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取模块220,用于提取所述待验证授权证书文件中包含的待验证注册码;
解密模块230,用于对所述待验证注册码进行解密,得到待验证硬件码;
匹配模块240,用于通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理;
授权模块250,用于当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,提取模块220还用于:
接收所述目标应用软件发送的注册请求;
通过所述预设程序获取所述目标硬件码;
获取所述目标应用软件的鉴权信息;
根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码;
对所述授权注册码进行加密,得到所述目标应用软件的待验证硬件码。
在一种可选的方式中,提取模块220还用于:
获取初始程序,将所述初始程序划分为多个核心程序块;
确定各个所述核心程序块的功能属性信息;
根据所述功能属性信息分别确定各个所述核心程序块对应的花指令以及插入位点;
将所述花指令分别添加到所述插入位点中,得到所述预设程序。
在一种可选的方式中,授权模块250还用于:
获取所述目标应用软件的历史授权信息;
根据所述历史授权信息确定所述目标应用软件的最近一次授权时间;
获取所述目标虚拟机的系统时间,将所述系统时间与所述最近一次授权时间进行匹配;
当所述系统时间与所述最近一次授权时间匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,提取模块220还用于:
对所述目标硬件码进行加密,得到所述目标虚拟机的第一硬件码;
对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码;
根据所述第二硬件码和所述鉴权信息确定所述目标应用软件的目标注册码。
在一种可选的方式中,提取模块220还用于:
根据第一密钥对所述目标硬件码进行加密,得到初始硬件码;
对所述初始硬件码进行转换处理,得到所述第一硬件码,所述转换处理包括字符串替换、字符串随机混排。
在一种可选的方式中,提取模块220还用于:
获取目标RSA私钥,根据所述目标RSA私钥对所述待验证注册码进行解密得到预解密硬件码;
获取目标AES密钥,根据所述目标AES密钥对所述预解密硬件码进行解密,得到所述待验证硬件码。
本发明实施例提供的基于虚拟机的应用软件授权装置的具体工作过程与前述基于虚拟机的应用软件授权方法的具体流程步骤相同,此处不再赘述。
本发明实施例提供的基于虚拟机的应用软件授权装置通过对整个获取硬件信息进行加密的代码和获取授权文件进行解密校验的代码进行反编译处理,从而提高了虚拟机软件的破解的难度,从而提高了使用的安全性。
图3示出了本发明实施例提供的基于虚拟机的应用软件授权设备的结构示意图,本发明具体实施例并不对基于虚拟机的应用软件授权设备的具体实现做限定。
如图3所示,该基于虚拟机的应用软件授权设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于基于虚拟机的应用软件授权方法实施例中的相关步骤。
具体地,程序310可以包括程序,该程序包括计算机可执行指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。基于虚拟机的应用软件授权设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取所述待验证授权证书文件中包含的待验证注册码;
对所述待验证注册码进行解密,得到待验证硬件码;
通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理;
当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
接收所述目标应用软件发送的注册请求;
通过所述预设程序获取所述目标硬件码;
获取所述目标应用软件的鉴权信息;
根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码;
对所述授权注册码进行加密,得到所述目标应用软件的待验证硬件码。
在一种可选的方式中,程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
获取初始程序,将所述初始程序划分为多个核心程序块;
确定各个所述核心程序块的功能属性信息;
根据所述功能属性信息分别确定各个所述核心程序块对应的花指令以及插入位点;
将所述花指令分别添加到所述插入位点中,得到所述预设程序。
在一种可选的方式中,程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
获取所述目标应用软件的历史授权信息;
根据所述历史授权信息确定所述目标应用软件的最近一次授权时间;
获取所述目标虚拟机的系统时间,将所述系统时间与所述最近一次授权时间进行匹配;
当所述系统时间与所述最近一次授权时间匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
对所述目标硬件码进行加密,得到所述目标虚拟机的第一硬件码;
对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码;
根据所述第二硬件码和所述鉴权信息确定所述目标应用软件的目标注册码。
在一种可选的方式中,程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
根据第一密钥对所述目标硬件码进行加密,得到初始硬件码;
对所述初始硬件码进行转换处理,得到所述第一硬件码,所述转换处理包括字符串替换、字符串随机混排。
在一种可选的方式中,程序310具体可以被处理器302调用使基于虚拟机的应用软件授权设备执行以下操作:
获取目标RSA私钥,根据所述目标RSA私钥对所述待验证注册码进行解密得到预解密硬件码;
获取目标AES密钥,根据所述目标AES密钥对所述预解密硬件码进行解密,得到所述待验证硬件码。
本发明实施例提供的基于虚拟机的应用软件授权设备的具体工作过程与前述基于虚拟机的应用软件授权方法的具体流程步骤相同,此处不再赘述。
本发明实施例提供的基于虚拟机的应用软件授权设备通过对整个获取硬件信息进行加密的代码和获取授权文件进行解密校验的代码进行反编译处理,从而提高了虚拟机软件的破解的难度,从而提高了使用的安全性。
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在基于虚拟机的应用软件授权设备上运行时,使得所述基于虚拟机的应用软件授权设备执行上述任意方法实施例中的基于虚拟机的应用软件授权方法。
可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取所述待验证授权证书文件中包含的待验证注册码;
对所述待验证注册码进行解密,得到待验证硬件码;
通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序经过了反汇编处理;
当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
接收所述目标应用软件发送的注册请求;
通过所述预设程序获取所述目标硬件码;
获取所述目标应用软件的鉴权信息;
根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码;
对所述授权注册码进行加密,得到所述目标应用软件的待验证硬件码。
在一种可选的方式中,可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
获取初始程序,将所述初始程序划分为多个核心程序块;
确定各个所述核心程序块的功能属性信息;
根据所述功能属性信息分别确定各个所述核心程序块对应的花指令以及插入位点;
将所述花指令分别添加到所述插入位点中,得到所述预设程序。
在一种可选的方式中,可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
获取所述目标应用软件的历史授权信息;
根据所述历史授权信息确定所述目标应用软件的最近一次授权时间;
获取所述目标虚拟机的系统时间,将所述系统时间与所述最近一次授权时间进行匹配;
当所述系统时间与所述最近一次授权时间匹配时,对所述目标应用软件进行授权。
在一种可选的方式中,可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
对所述目标硬件码进行加密,得到所述目标虚拟机的第一硬件码;
对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码;
根据所述第二硬件码和所述鉴权信息确定所述目标应用软件的目标注册码。
在一种可选的方式中,可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
根据第一密钥对所述目标硬件码进行加密,得到初始硬件码;
对所述初始硬件码进行转换处理,得到所述第一硬件码,所述转换处理包括字符串替换、字符串随机混排。
在一种可选的方式中,可执行指令具体可以用于使得基于虚拟机的应用软件授权设备执行以下操作:
获取目标RSA私钥,根据所述目标RSA私钥对所述待验证注册码进行解密得到预解密硬件码;
获取目标AES密钥,根据所述目标AES密钥对所述预解密硬件码进行解密,得到所述待验证硬件码。
本发明实施例提供的计算机可读存储介质的具体工作过程与前述基于虚拟机的应用软件授权方法的具体流程步骤相同,此处不再赘述。
本发明实施例提供的计算机可读存储介质通过对整个获取硬件信息进行加密的代码和获取授权文件进行解密校验的代码进行反编译处理,从而提高了虚拟机软件的破解的难度,从而提高了使用的安全性。
本发明实施例提供一种基于虚拟机的应用软件授权装置,用于执行上述基于虚拟机的应用软件授权方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使基于虚拟机的应用软件授权设备执行上述任意方法实施例中的基于虚拟机的应用软件授权方法。
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的基于虚拟机的应用软件授权方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与用于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (9)
1.一种基于虚拟机的应用软件授权方法,其特征在于,所述方法包括:
接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取所述待验证授权证书文件中包含的待验证注册码;
对所述待验证注册码进行解密,得到待验证硬件码;
通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序为将花指令分别添加到多个核心程序块中的插入位点得到的;所述核心程序块为对初始程序进行划分得到的;各个所述核心程序块对应的花指令以及插入位点根据各个所述核心程序块的功能属性信息分别确定;
当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
2.根据权利要求1所述的方法,其特征在于,在接收目标虚拟机上运行的目标应用软件的验证请求之前,还进一步包括:
接收所述目标应用软件发送的注册请求;
通过所述预设程序获取所述目标硬件码;
获取所述目标应用软件的鉴权信息;
根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码;
对所述授权注册码进行加密,得到所述目标应用软件的待验证硬件码。
3.根据权利要求1-2任一项所述的方法,其特征在于,在当所述待验证硬件码与所述目标硬件码匹配时,在对所述目标应用软件进行授权之前,还进一步包括:
获取所述目标应用软件的历史授权信息;
根据所述历史授权信息确定所述目标应用软件的最近一次授权时间;
获取所述目标虚拟机的系统时间,将所述系统时间与所述最近一次授权时间进行匹配;
当所述系统时间与所述最近一次授权时间匹配时,对所述目标应用软件进行授权。
4.根据权利要求2所述的方法,其特征在于,所述根据所述鉴权信息和所述目标硬件码确定所述目标应用软件的授权注册码,进一步包括:
对所述目标硬件码进行加密,得到所述目标虚拟机的第一硬件码;
对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码;
根据所述第二硬件码和所述鉴权信息确定所述目标应用软件的目标注册码。
5.根据权利要求4所述的方法,其特征在于,所述对所述第一硬件码进行解密,得到所述目标虚拟机的第二硬件码之前,进一步包括:
根据第一密钥对所述目标硬件码进行加密,得到初始硬件码;
对所述初始硬件码进行转换处理,得到所述第一硬件码,所述转换处理包括字符串替换、字符串随机混排。
6.根据权利要求1所述的方法,其特征在于,所述对所述待验证注册码进行解密,得到待验证硬件码,进一步包括:
获取目标RSA私钥,根据所述目标RSA私钥对所述待验证注册码进行解密得到预解密硬件码;
获取目标AES密钥,根据所述目标AES密钥对所述预解密硬件码进行解密,得到所述待验证硬件码。
7.一种基于虚拟机的应用软件授权装置,其特征在于,所述装置包括:
接收模块,用于接收目标虚拟机上运行的目标应用软件发送的授权请求,所述授权请求中携带有所述目标应用软件对应的待验证授权证书文件;
提取模块,用于提取所述待验证授权证书文件中包含的待验证注册码;
解密模块,用于对所述待验证注册码进行解密,得到待验证硬件码;
匹配模块,用于通过预设程序获取所述目标虚拟机的目标硬件码,将所述待验证硬件码与所述目标硬件码进行匹配,其中,所述预设程序通过将花指令分别添加到多个核心程序块中的插入位点得到;所述核心程序块通过对初始程序进行划分得到;各个所述核心程序块对应的花指令以及插入位点根据各个所述核心程序块的功能属性信息分别确定;
授权模块,用于当所述待验证硬件码与所述目标硬件码匹配时,对所述目标应用软件进行授权。
8.一种基于虚拟机的应用软件授权设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6任意一项所述的基于虚拟机的应用软件授权方法的操作。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在基于虚拟机的应用软件授权设备上运行时,使得基于虚拟机的应用软件授权设备执行如权利要求1-6任意一项所述的基于虚拟机的应用软件授权方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011504687.4A CN112528236B (zh) | 2020-12-18 | 2020-12-18 | 基于虚拟机的应用软件授权方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011504687.4A CN112528236B (zh) | 2020-12-18 | 2020-12-18 | 基于虚拟机的应用软件授权方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528236A CN112528236A (zh) | 2021-03-19 |
CN112528236B true CN112528236B (zh) | 2022-03-11 |
Family
ID=75001419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011504687.4A Active CN112528236B (zh) | 2020-12-18 | 2020-12-18 | 基于虚拟机的应用软件授权方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528236B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326480B (zh) * | 2021-06-01 | 2024-02-20 | 北京联创新天科技有限公司 | 一种应用程序的授权校验方法、装置、介质及设备 |
CN113221075B (zh) * | 2021-06-02 | 2023-06-30 | 日照市海洲电子科技有限公司 | 一种软件授权方法、系统和软件终端 |
CN113343212B (zh) * | 2021-06-25 | 2023-02-24 | 成都商汤科技有限公司 | 设备注册方法及装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318135A (zh) * | 2014-10-27 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于可信执行环境的Java代码安全动态载入方法 |
CN109460250A (zh) * | 2018-09-25 | 2019-03-12 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2296363C1 (ru) * | 2006-04-27 | 2007-03-27 | Общество с ограниченной ответственностью "АСТРОМА" | Способ и средство защиты программного обеспечения от несанкционированного использования |
EP3025235B1 (en) * | 2013-07-25 | 2020-10-28 | Siemens Healthcare Diagnostics Inc. | Anti-piracy protection for software |
CN109684790B (zh) * | 2018-12-26 | 2021-06-04 | 佛山市瑞德物联科技有限公司 | 软件启动方法、软件授权验证方法、设备和存储介质 |
CN111881424A (zh) * | 2020-08-03 | 2020-11-03 | 上海英方软件股份有限公司 | 一种基于机器识别码的许可授权方法及装置 |
-
2020
- 2020-12-18 CN CN202011504687.4A patent/CN112528236B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318135A (zh) * | 2014-10-27 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于可信执行环境的Java代码安全动态载入方法 |
CN109460250A (zh) * | 2018-09-25 | 2019-03-12 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112528236A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112528236B (zh) | 基于虚拟机的应用软件授权方法 | |
CN107566116B (zh) | 用于数字资产确权登记的方法及装置 | |
CN108023874B (zh) | 单点登录的校验装置、方法及计算机可读存储介质 | |
KR100670005B1 (ko) | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 | |
US11163867B2 (en) | Method and system for authorizing acquisition of attack alarm information log of terminal | |
CN111625829A (zh) | 基于可信执行环境的应用激活方法及装置 | |
WO2019229234A1 (en) | Shared secret establishment | |
US20090119505A1 (en) | Transaction method and verification method | |
CN106992859B (zh) | 一种堡垒机私钥管理方法及装置 | |
CN105812366A (zh) | 服务器、反爬虫系统和反爬虫验证方法 | |
CN115242553B (zh) | 一种支持安全多方计算的数据交换方法及系统 | |
CN112800392A (zh) | 基于软证书的授权方法和装置、存储介质 | |
CN107181589B (zh) | 一种堡垒机私钥管理方法及装置 | |
WO2018033017A1 (zh) | 一种授信的终端状态转换方法和系统 | |
CN105873043B (zh) | 一种用于移动终端的网络私匙的生成及应用方法及其系统 | |
JP2009199147A (ja) | 通信制御方法および通信制御プログラム | |
CN115766192A (zh) | 基于ukey的离线安全认证方法、装置、设备及介质 | |
CN110968878A (zh) | 信息传输方法、系统、电子设备及可读介质 | |
CN112291189B (zh) | 发送、校验密文的方法、装置、设备以及存储介质 | |
CN110210189B (zh) | 软件验证方法、软硬件绑定方法及其可编程器件 | |
CN113297563A (zh) | 访问片上系统特权资源的方法、装置及片上系统 | |
CN113536238A (zh) | 一种基于密码技术的软件使用授权认证方法、系统及相关产品 | |
EP2998895B1 (en) | Technique for enabling nominal flow of an executable file | |
CN111385099A (zh) | 车载智能硬件的安全认证方法及装置 | |
CN109660355B (zh) | 防止pos终端被非法篡改的方法、装置、存储介质以及终端 |
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 | ||
CP03 | Change of name, title or address |
Address after: 518000 4001, Block D, Building 1, Chuangzhi Yuncheng Lot 1, Liuxian Avenue, Xili Community, Xili Street, Nanshan District, Shenzhen, Guangdong Patentee after: Shenzhen Zhuyun Technology Co.,Ltd. Address before: 518000 East, 3rd floor, incubation building, China Academy of science and technology, 009 Gaoxin South 1st Road, Nanshan District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN BAMBOOCLOUD TECHNOLOGY CO.,LTD. |
|
CP03 | Change of name, title or address |