一种基于虚拟系统的加密方法

文档序号:8259426阅读:175来源:国知局
一种基于虚拟系统的加密方法
【技术领域】
[0001]本发明涉及系统加密技术领域,具体涉及一种基于虚拟系统的加密方法。
【背景技术】
[0002]随着信息社会到来和计算机技术的发展,许多盗版软件愈发频发,这不仅威胁到了开发商的利益,还会给众多网民带来巨大的安全隐患。为此,开发商们为了维护自身利益,保证自己的软件不被破解、非法复制,不得不设计出各种加密技术。其中软件加密技术发展迅速,有加密性能好、加密方式灵活等优点,深受大众的青睐。但是也有很多人利用软件跟踪调试技术,诸如标志寄存器中的陷阱标志、DR0-DR7寄存器等技术中断加密过程,从而破解软件。

【发明内容】

[0003]本发明要解决的技术问题是:通过加载虚拟系统驱动模块并创建一个虚拟系统,从而使得传统的软件跟踪调试技术在虚拟系统中无效,也就是意味着在加密的过程中是无法被中断的,从而使破解者不能破解加密算法。
[0004]本发明所采用的技术方案为:
一种基于虚拟系统的加密方法,所述加密方法通过宿主机系统加载虚拟系统驱动模块,并创建一个虚拟系统,该虚拟系统内核CPU与真实的CPU完全不同,而且它能运行的指令比真实的CPU少很多,只需要完成加密运算即可;最后,在虚拟系统中加密完成后,将加密结果存入宿主机缓冲区。
[0005]所述方法运行过程如下:在宿主机中加载虚拟系统驱动模块,当被保护软件向虚拟系统驱动程序发送加密请求时,启动虚拟系统驱动模块并创建一个虚拟系统,虚拟系统包括一个内核,内核对于运行于虚拟系统的程序来说,相当于一个处理器CPU,该内核CPU与真实的CPU完全不同,而且它能运行的指令比真实的CPU少很多,主要是一些汇编指令集,这些指令集主要是用来完成加密运算;被保护软件向虚拟系统内核提供原始数据,虚拟内核根据预定的算法对需要进行加密运算的原始数据进行操作,加密完成后,从虚拟系统中将结果返回到宿主机内存。
[0006]所述加密方法的操作步骤如下:
1)被保护的软件向虚拟驱动程序发送加密请求并提供原始数据:当软件启动时,首先会向虚拟驱动程序发送加密请求,使虚拟驱动程序模块启动并创建虚拟系统;
2)传数据:虚拟系统创建完成后,将原始数据传入虚拟系统内核,为后续加密所使用;
3)关闭中断:虚拟系统内核关闭中断,以屏蔽外部的中断请求;虚拟系统的输入是被保护软件提供的原始数据,输出则是经过加密运算加密后的结果;
4)在虚拟内核中进行加密运算:虚拟内核根据预定的算法对需要进行加密运算的原始数据进行操作;
5)将加密结果返回宿主机内存:虚拟内核将加密后的结果返回并保存在宿主机的内存中,供被保护软件使用。
[0007]本发明的有益效果为:采用本发明设计,不仅可以大大提高加密性能,还由于虚拟系统无法被中断,使破解难度高。
【附图说明】
[0008]图1为本发明虚拟机加密流程图;
图2为本发明系统框图。
【具体实施方式】
[0009]下面参照附图所示,通过【具体实施方式】对本发明进一步说明:
实施例1:
如图2所示,一种基于虚拟系统的加密方法,所述加密方法通过宿主机系统加载(注册)虚拟系统驱动模块,并创建一个虚拟系统,该虚拟系统内核CPU与真实的CPU完全不同,而且它能运行的指令比真实的CPU少很多,只需要完成加密运算即可;最后,在虚拟系统中加密完成后,将加密结果存入宿主机缓冲区。
[0010]实施例2:
如图1所示,在实施例1的基础上,本实施例所述方法运行过程如下:在宿主机中加载虚拟系统驱动模块,当被保护软件向虚拟系统驱动程序发送加密请求时,启动虚拟系统驱动模块并创建一个虚拟系统,虚拟系统包括一个内核,内核对于运行于虚拟系统的程序来说,相当于一个处理器CPU,该内核CPU与真实的CPU完全不同,而且它能运行的指令比真实的CPU少很多,主要是一些汇编指令集,这些指令集主要是用来完成加密运算;被保护软件向虚拟系统内核提供原始数据,虚拟内核根据预定的算法对需要进行加密运算的原始数据进行操作,加密完成后,从虚拟系统中将结果返回到宿主机内存。
[0011]实施例3:
在实施例1或2的基础上,本实施例所述加密方法的操作步骤如下:
1)被保护的软件向虚拟驱动程序发送加密请求并提供原始数据:当软件启动时,首先会向虚拟驱动程序发送加密请求,使虚拟驱动程序模块启动并创建虚拟系统;
2)传数据:虚拟系统创建完成后,将原始数据传入虚拟系统内核,为后续加密所使用;
3)关闭中断:虚拟系统内核关闭中断,以屏蔽外部的中断请求;虚拟系统的输入是被保护软件提供的原始数据,输出则是经过加密运算加密后的结果;
4)在虚拟内核中进行加密运算:虚拟内核根据预定的算法对需要进行加密运算的原始数据进行操作;
5)将加密结果返回宿主机内存:虚拟内核将加密后的结果返回并保存在宿主机的内存中,供被保护软件使用。
[0012]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【主权项】
1.一种基于虚拟系统的加密方法,其特征在于:所述加密方法通过宿主机系统加载虚拟系统驱动模块,并创建一个虚拟系统,该虚拟系统内核CPU与真实的CPU不同,能运行的指令也比真实的CPU少很多,只需要完成加密运算;在虚拟系统中加密完成后,将加密结果存入宿主机缓冲区。
2.根据权利要求1所述的一种基于虚拟系统的加密方法,其特征在于,所述方法运行过程如下:在宿主机中加载虚拟系统驱动模块,当被保护软件向虚拟系统驱动程序发送加密请求时,启动虚拟系统驱动模块并创建一个虚拟系统,虚拟系统包括一个内核,内核对于运行于虚拟系统的程序来说,相当于一个处理器CPU,该内核CPU与真实的CPU完全不同,而且它能运行的指令比真实的CPU少很多,主要是一些汇编指令集,这些指令集主要是用来完成加密运算;被保护软件向虚拟系统内核提供原始数据,虚拟内核根据预定的算法对需要进行加密运算的原始数据进行操作,加密完成后,从虚拟系统中将结果返回到宿主机内存。
3.根据权利要求1或2所述的一种基于虚拟系统的加密方法,其特征在于,所述加密方法的操作步骤如下: 1)被保护的软件向虚拟驱动程序发送加密请求并提供原始数据:当软件启动时,首先会向虚拟驱动程序发送加密请求,使虚拟驱动程序模块启动并创建虚拟系统; 2)传数据:虚拟系统创建完成后,将原始数据传入虚拟系统内核,为后续加密所使用; 3)关闭中断:虚拟系统内核关闭中断,以屏蔽外部的中断请求;虚拟系统的输入是被保护软件提供的原始数据,输出则是经过加密运算加密后的结果; 4)在虚拟内核中进行加密运算:虚拟内核根据预定的算法对需要进行加密运算的原始数据进行操作; 5)将加密结果返回宿主机内存:虚拟内核将加密后的结果返回并保存在宿主机的内存中,供被保护软件使用。
【专利摘要】本发明公开了一种基于虚拟系统的加密方法,所述加密方法通过宿主机系统加载虚拟系统驱动模块,并创建一个虚拟系统,该虚拟系统内核CPU与真实的CPU不同,能运行的指令也比真实的CPU少很多,只需要完成加密运算;在虚拟系统中加密完成后,将加密结果存入宿主机缓冲区。采用本发明设计,不仅可以大大提高加密性能,还由于虚拟系统无法被中断,使破解难度高。
【IPC分类】G06F21-62, G06F9-455
【公开号】CN104573556
【申请号】CN201510025093
【发明人】陈勇, 秦清松
【申请人】浪潮集团有限公司
【公开日】2015年4月29日
【申请日】2015年1月19日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1