一种程序保护方法和装置与流程

文档序号:14609710发布日期:2018-06-05 20:34阅读:来源:国知局
一种程序保护方法和装置与流程

技术特征:

1.程序保护方法,用于防止一个目标程序(20)被破解,其特征在于,所述目标程序(20)运行在第一虚拟机(101)上,所述方法包括:

在所述第一虚拟机(101)的操作系统启动过程中,运行第一解密程序,其中,所述第一解密程序用于对所述第一虚拟机(101)的第一分区进行解密,所述第一分区中包括所述目标程序(20);

在解密所述第一分区后,运行所述目标程序(20)。

2.如权利要求1所述的方法,其特征在于,运行所述第一解密程序,包括:

判断所述第一虚拟机(101)的至少一个属性中每一个属性的取值与第二虚拟机(102)该属性的取值是否相同,其中,所述第二虚拟机(102)是预设的用于运行所述目标程序(20)的虚拟机;

若所述第一虚拟机(101)的所述至少一个属性中的每一个属性的取值与所述第二虚拟机(102)该属性的取值相同,则解密所述第一分区;

若所述第一虚拟机(101)中的所述至少一个属性中存在一个属性,该属性的取值与所述第二虚拟机(102)该属性的取值不同,则保持所述第一分区被加密。

3.如权利要求1或2所述的方法,其特征在于,所述目标程序(20)由Java编写或由一种解释型语言编写,所述解密程序由一种编译型语言编写。

4.如权利要求1~3任一项所述的方法,其特征在于,还包括:

在运行所述目标程序(20)过程中,向一个许可服务器(30)请求用于运行所述目标程序(20)的许可;

若获得运行所述目标程序(20)的许可后,则继续运行所述目标程序(20),若未获得运行所述目标程序(20)的许可,则终止运行所述目标程序(20)。

5.许可服务器启动方法,所述方法用于启动一个许可服务器(30),其特征在于,所述许可服务器(30)运行在一个第三虚拟机(103)上,用于为一个目标程序(20)的运行提供许可,所述方法包括:

在所述第三虚拟机(103)的操作系统的启动过程中,运行第二解密程序,其中,所述第二解密程序用于对所述第三虚拟机(103)的第三分区进行解密,所述第三分区中包括所述许可服务器(30)的程序;

在解密所述第三分区后,运行所述许可服务器(30)的程序,以启动所述许可服务器(30);

在启动所述许可服务器(30)的过程中,检查硬件狗是否存在,若存在,则提供一个应用程序接口,所述应用程序接口用于接收来自所述目标程序(20)的许可请求;若不存在则终止所述许可服务器(30)的启动。

6.如权利要求5所述的方法,其特征在于,在提供一个应用程序接口,用于接收来自所述目标程序(20)的许可请求后,还包括:

若检测到所述硬件狗被拔出,则终止许可服务器(30)。

7.第一虚拟机(101),其特征在于,所述第一虚拟机(101)上运行一个目标程序(20),所述第一虚拟机(101)包括:

一个解密模块(1011),用于在所述第一虚拟机(101)的操作系统启动过程中,运行第一解密程序,其中,所述第一解密程序用于对所述第一虚拟机(101)的第一分区进行解密,所述第一分区中包括所述目标程序(20);

一个目标程序运行模块(1012),用于在所述解密模块(1011)解密所述第一分区后,运行所述目标程序(20)。

8.如权利要求7所述的第一虚拟机(101),其特征在于,所述解密模块(1011)具体用于:

判断所述第一虚拟机(101)的至少一个属性中每一个属性的取值与第二虚拟机(102)该属性的取值是否相同,其中,所述第二虚拟机(102)是预设的用于运行所述目标程序(20)的虚拟机;

若所述第一虚拟机(101)的所述至少一个属性中的每一个属性的取值与所述第二虚拟机(102)该属性的取值相同,则解密所述第一分区;

若所述第一虚拟机(101)中的所述至少一个属性中存在一个属性,该属性的取值与所述第二虚拟机(102)该属性的取值不同,则保持所述第一分区被加密。

9.如权利要求7或8所述的第一虚拟机(101),其特征在于,所述目标程序运行模块(1012)运行的所述目标程序(20)由Java编写或由一种解释型语言编写,所述解密模块(1011)运行的所述解密程序由一种编译型语言编写。

10.如权利要求7~9任一项所述的第一虚拟机(101),其特征在于,所述目标程序运行模块(1012),还用于:

在所述目标程序(20)运行过程中,向一个许可服务器(30)请求用于运行所述目标程序(20)的许可;

若获得运行所述目标程序(20)的许可,则继续运行所述目标程序(20),若未获得运行所述目标程序(20)的许可,则终止运行所述目标程序(20)。

11.第三虚拟机(103),其特征在于,所述第三虚拟机(103)上运行一个许可服务器(30),所述许可服务器(30)用于为一个目标程序(20)的运行提供许可,所述第三虚拟机(103)包括:

一个解密模块(1031),用于在所述第三虚拟机(103)的操作系统的启动过程中,运行第二解密程序,其中,所述第二解密程序用于对所述第三虚拟机(103)的第三分区进行解密,所述第三分区中包括所述许可服务器(30)的程序;

一个许可服务器运行模块(1032),用于:

在解密模块(1031)解密所述第三分区后,运行所述许可服务器(30)的程序,以启动所述许可服务器(30);

在启动所述许可服务器(30)的过程中,检查硬件狗是否存在,若存在,则提供一个应用程序接口,所述应用程序接口用于接收来自所述目标程序(20)的许可请求;若不存在则终止所述许可服务器(30)的启动。

12.如权利要求11所述的第三虚拟机(103),其特征在于,所述许可服务器运行模块(1032)还用于:

在提供一个应用程序接口,用于接收来自所述目标程序(20)的许可请求后,若检测到所述硬件狗被拔出,则终止许可服务器(30)。

13.至少一台计算机设备(70),其特征在于,所述至少一台计算机设备(70)上运行如权利要求1~4中任一项所述的第一虚拟机(101)和/或权利要求5或6中所述的第三虚拟机(103)。

14.计算机存储介质,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行权利要求1~6任一项所述的方法。

15.一种计算机网络(10),包括:至少一个第一虚拟机(101)和一个第三虚拟机(103),所述第一虚拟机(101)上运行一个目标程序(20),所述第三虚拟机(103)上运行一个许可服务器(30),其特征在于,所述第一虚拟机(101),用于:

在操作系统启动过程中,运行第一解密程序,其中,所述第一解密程序用于对所述第一虚拟机(101)的第一分区进行解密,所述第一分区中包括一个目标程序(20);

在解密所述第一分区后,向一个许可服务器(30)请求用于运行所述目标程序(20)的许可;

在获得所述目标程序(20)的许可后,运行所述目标程序(20)。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1