一种数据加解密的方法、系统及设备技术方案

技术编号:27314790 阅读:36 留言:0更新日期:2021-02-10 09:44
本申请公开了一种数据加解密的方法,包括:监测应用程序发起的内存映射文件创建操作,并分配与内存映射文件大小相同的虚拟内存;利用向量化异常处理程序将虚拟内存的保护属性修改为可读可写状态;对位于待处理数据位置的加密数据进行解密,并将解密后的数据写入虚拟内存中,以使应用程序读取虚拟内存中的数据。本申请通过对内存保护异常进行处理实现对应用程序的数据处理类型及待处理数据位置的确定,进而实现了文件透明加解密,相对于现有技术本申请复杂程度低且更容易实现,极大的降低了软件开发成本,提高了文件透明加解密的稳定性。本申请同时还提供了一种数据加解密的系统、设备及可读存储介质,具有上述有益效果。具有上述有益效果。具有上述有益效果。

【技术实现步骤摘要】
一种数据加解密的方法、系统及设备


[0001]本申请涉及数据处理领域,特别涉及一种数据加解密的方法、系统、设备及可读存储介质。

技术介绍

[0002]文件透明加解密是指应用程序不需要改变使用方式就能正常访问加密的文件,即加解密操作对于应用程序来说是无感知的。目前市场上文件透明加解密产品,绝大多数都是基于文件过滤驱动实现的。由于文件过滤驱动开发难度较一般应用程序高,从业人员水平参差不齐,因此此类产品的可靠性一直不够理想。而且,文件过滤驱动安装在操作系统内核,一旦发生异常就影响整个系统的稳定性。
[0003]因此,如何提高文件透明加解密的稳定性是本领域技术人员目前需要解决的技术问题。

技术实现思路

[0004]本申请的目的是提供一种数据加解密的方法、系统、设备及可读存储介质,用于提高文件透明加解密的稳定性。
[0005]为解决上述技术问题,本申请提供一种数据加解密的方法,该方法包括:
[0006]监测应用程序发起的内存映射文件创建操作,并分配与内存映射文件大小相同的虚拟内存;
[0007]将所述虚拟内存的保护属性修改为不可访问状态,以使所述应用程序访问所述虚拟内存时产生内存保护异常;
[0008]根据所述内存映射文件创建操作确定所述应用程序的数据处理类型及待处理数据位置;
[0009]当所述数据处理类型为数据读取时,利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态;
[0010]对位于所述待处理数据位置的加密数据进行解密,并将解密后的数据写入所述虚拟内存中,以使所述应用程序读取所述虚拟内存中的数据。
[0011]可选的,在监测应用程序发起的内存映射文件创建操作之后,在分配与内存映射文件大小相同的虚拟内存之前,还包括:
[0012]判断所述内存映射文件是否为加密文件;
[0013]若是,则执行所述分配与内存映射文件大小相同的虚拟内存的步骤;
[0014]若否,则判断所述内存映射文件是否需要加密;
[0015]若所述内存映射文件需要加密,则加密所述内存映射文件,并执行所述分配与内存映射文件大小相同的虚拟内存的步骤;
[0016]若所述内存映射文件不需要加密,则将所述内存映射文件的基址作为结果返回给所述应用程序。
[0017]可选的,在利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态之前,还包括:
[0018]利用预设函数注册所述向量化异常处理程序。
[0019]可选的,还包括:
[0020]当所述数据处理类型为数据写入时,利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态,并启动监视线程;
[0021]利用所述监视线程对所述虚拟内存进行写入跟踪,并将跟踪得到的数据写入所述待处理数据位置中。
[0022]可选的,所述利用所述监视线程对所述虚拟内存进行写入跟踪,并将跟踪得到的数据写入所述待处理数据位置中,包括:
[0023]利用所述监视线程调用预设函数对所述虚拟内存进行写入跟踪;
[0024]当所述应用程序执行完数据写入时,控制所述预设函数携带跟踪得到的数据返回内存写入页面;
[0025]将所述内存写入页面中的数据加密保存到所述待处理数据位置中。
[0026]可选的,将所述内存写入页面中的数据加密保存到所述待处理数据位置中,包括:
[0027]将所有所述内存写入页面存储到延迟写入队列中;
[0028]执行所述延迟写入队列将所述内存写入页面中的数据定时加密保存到所述待处理数据位置中。
[0029]可选的,在将所述内存写入页面中的数据加密保存到所述待处理数据位置中之后,还包括:
[0030]重置所述内存写入页面的写入状态;
[0031]重复执行利用所述监视线程调用预设函数对所述虚拟内存进行写入跟踪的步骤,直到所述虚拟内存被关闭。
[0032]本申请还提供一种数据加解密的系统,该系统包括:
[0033]监测模块,用于监测应用程序发起的内存映射文件创建操作,并分配与内存映射文件大小相同的虚拟内存;
[0034]第一修改模块,用于将所述虚拟内存的保护属性修改为不可访问状态,以使所述应用程序访问所述虚拟内存时产生内存保护异常;
[0035]确定模块,用于根据所述内存映射文件创建操作确定所述应用程序的数据处理类型及待处理数据位置;
[0036]第二修改模块,用于当所述数据处理类型为数据读取时,利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态;
[0037]第一写入模块,用于对位于所述待处理数据位置的加密数据进行解密,并将解密后的数据写入所述虚拟内存中,以使所述应用程序读取所述虚拟内存中的数据。
[0038]本申请还提供一种数据加解密设备,该数据加解密设备包括:
[0039]存储器,用于存储计算机程序;
[0040]处理器,用于执行所述计算机程序时实现如上述任一项所述数据加解密的方法的步骤。
[0041]本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述
计算机程序被处理器执行时实现如上述任一项所述数据加解密的方法的步骤。
[0042]本申请所提供数据加解密的方法,包括:监测应用程序发起的内存映射文件创建操作,并分配与内存映射文件大小相同的虚拟内存;将虚拟内存的保护属性修改为不可访问状态,以使应用程序访问虚拟内存时产生内存保护异常;根据内存映射文件创建操作确定应用程序的数据处理类型及待处理数据位置;当数据处理类型为数据读取时,利用向量化异常处理程序将虚拟内存的保护属性修改为可读可写状态;对位于待处理数据位置的加密数据进行解密,并将解密后的数据写入虚拟内存中,以使应用程序读取虚拟内存中的数据。
[0043]本申请所提供的技术方案,通过利用虚拟内存代替内存映射文件,以使应用程序对虚拟内存进行操作,并通过将虚拟内存的保护属性修改为不可访问状态,以使应用程序访问虚拟内存时产生内存保护异常,通过对内存保护异常进行处理实现对应用程序的数据处理类型及待处理数据位置的确定,进而实现了文件透明加解密,相对于现有技术本申请复杂程度低且更容易实现,极大的降低了软件开发成本,提高了文件透明加解密的稳定性。本申请同时还提供了一种数据加解密的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
[0044]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0045]图1为本申请实施例所提供的一种数据加解密的方法的流程图;
[0046]图2为本申请实施例所提供的另一种数据加解密的方法的流程图;
[0047]图3为本申请实施例所提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据加解密的方法,其特征在于,包括:监测应用程序发起的内存映射文件创建操作,并分配与内存映射文件大小相同的虚拟内存;将所述虚拟内存的保护属性修改为不可访问状态,以使所述应用程序访问所述虚拟内存时产生内存保护异常;根据所述内存映射文件创建操作确定所述应用程序的数据处理类型及待处理数据位置;当所述数据处理类型为数据读取时,利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态;对位于所述待处理数据位置的加密数据进行解密,并将解密后的数据写入所述虚拟内存中,以使所述应用程序读取所述虚拟内存中的数据。2.根据权利要求1所述的方法,其特征在于,在监测应用程序发起的内存映射文件创建操作之后,在分配与内存映射文件大小相同的虚拟内存之前,还包括:判断所述内存映射文件是否为加密文件;若是,则执行所述分配与内存映射文件大小相同的虚拟内存的步骤;若否,则判断所述内存映射文件是否需要加密;若所述内存映射文件需要加密,则加密所述内存映射文件,并执行所述分配与内存映射文件大小相同的虚拟内存的步骤;若所述内存映射文件不需要加密,则将所述内存映射文件的基址作为结果返回给所述应用程序。3.根据权利要求1所述的方法,其特征在于,在利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态之前,还包括:利用预设函数注册所述向量化异常处理程序。4.根据权利要求1所述的方法,其特征在于,还包括:当所述数据处理类型为数据写入时,利用向量化异常处理程序将所述虚拟内存的保护属性修改为可读可写状态,并启动监视线程;利用所述监视线程对所述虚拟内存进行写入跟踪,并将跟踪得到的数据写入所述待处理数据位置中。5.根据权利要求4所述的方法,其特征在于,所述利用所述监视线程对所述虚拟内存进行写入跟踪,并将跟踪得到的数据写入所述待处理数据位置中,包括:利用所述监视线程调用预设函数对所述...

【专利技术属性】
技术研发人员:赵康张月明
申请(专利权)人:杭州安恒信息安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1