本发明涉及内存保护技术领域,尤其涉及一种vr游戏内存数据的保护方法及其系统。
背景技术:
目前,游戏为了防止自己的内存被人修改,通常使用inlinehook技术(通俗地说就是对函数执行流程进行修改,达到控制函数过滤操作的目的。理论上我们可以在函数任何地方把原来指令替换成我们的跳转指令)来保护游戏的内存块,防止内存被修改。但是,对于vr游戏来说,由于是vr游戏是64位的,而inlinehook技术是不能在64位底层下使用的,因此,目前仍没有有效地保护vr游戏内存的方案。
技术实现要素:
本发明所要解决的技术问题是:提供一种vr游戏内存数据的保护方法及其系统,可有效保护vr游戏的内存数据。
为了解决上述技术问题,本发明采用的技术方案为:一种vr游戏内存数据的保护方法,包括:
获取vr游戏的句柄,得到句柄表;
创建回调函数;
当一程序进程访问所述vr游戏时,触发所述回调函数;
通过所述回调函数返回的进程句柄,获取所述一程序的进程路径;
若所述进程路径与所述句柄表中任一句柄对应的路径不匹配,则降低所述进程句柄的权限值。
本发明还涉及一种vr游戏内存数据的保护系统,包括:
第一获取模块,用于获取vr游戏的句柄,得到句柄表;
创建模块,用于创建回调函数;
触发模块,用于当一程序进程访问所述vr游戏时,触发所述回调函数;
第二获取模块,用于通过所述回调函数返回的进程句柄,获取所述一程序的进程路径;
降低模块,用于若所述进程路径与所述句柄表中任一句柄对应的路径不匹配,则降低所述进程句柄的权限值。
本发明的有益效果在于:通过先获取vr游戏的句柄表,得到可获取vr游戏内存的进程白名单,通过回调函数获取访问vr游戏的进程的路径,若该进程不在进程白名单内,则降低该进程句柄的权限值,使其无法访问到vr游戏的内存;本发明可使其他进程无法访问vr游戏的内存,从而实现对vr游戏内存数据的保护。
附图说明
图1为本发明一种vr游戏内存数据的保护方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明一种vr游戏内存数据的保护系统的结构示意图;
图4为本发明实施例二的系统结构示意图。
标号说明:
1、第一获取模块;2、创建模块;3、触发模块;4、第二获取模块;5、降低模块;6、继续执行模块;
41、第一获取单元;42、第二获取单元。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:降低不在进程白名单的进程的权限值。
请参阅图1,一种vr游戏内存数据的保护方法,包括:
获取vr游戏的句柄,得到句柄表;
创建回调函数;
当一程序进程访问所述vr游戏时,触发所述回调函数;
通过所述回调函数返回的进程句柄,获取所述一程序的进程路径;
若所述进程路径与所述句柄表中任一句柄对应的路径不匹配,则降低所述进程句柄的权限值。
从上述描述可知,本发明的有益效果在于:通过降低其他进程的权限值,使其他进程无法访问vr游戏的内存,从而实现对vr游戏内存数据的保护。
进一步地,所述“通过所述回调函数返回的进程句柄,获取所述一程序的进程路径”具体为:
通过回调函数获取所述一程序的进程句柄;
根据所述进程句柄,获取对应的进程路径。
由上述描述可知,回调函数会返回一个结构,该结构中保存着该程序的进程句柄,将进程句柄进行转换即可得到进程路径。
进一步地,所述“若所述进程路径不与所述句柄表中任一句柄对应的路径匹配,则降低所述进程句柄的权限值”之后,进一步包括:
继续执行所述一程序。
由上述描述可知,通过放行该程序,防止游戏发生崩溃。
请参照图3,本发明还提出一种vr游戏内存数据的保护系统,包括:
第一获取模块,用于获取vr游戏的句柄,得到句柄表;
创建模块,用于创建回调函数;
触发模块,用于当一程序进程访问所述vr游戏时,触发所述回调函数;
第二获取模块,用于通过所述回调函数返回的进程句柄,获取所述一程序的进程路径;
降低模块,用于若所述进程路径与所述句柄表中任一句柄对应的路径不匹配,则降低所述进程句柄的权限值。
进一步地,所述第二获取模块包括:
第一获取单元,用于通过回调函数获取所述一程序的进程句柄;
第二获取单元,用于根据所述进程句柄,获取对应的进程路径。
进一步地,还包括:
继续执行模块,用于继续执行所述一程序。
实施例一
请参照图2,本发明的实施例一为:一种vr游戏内存数据的保护方法,所述方法基于vr设备游戏特定的内存保护原理,包括如下步骤:
s1:获取vr游戏的句柄,得到句柄表。
s2:创建回调函数。
s3:当一程序进程访问所述vr游戏时,触发所述回调函数。
s4:通过所述回调函数返回的进程句柄,获取所述一程序的进程路径;进一步地,通过回调函数获取所述一程序的进程句柄,根据所述进程句柄,获取对应的进程路径。
s5:判断所述进程路径与所述句柄表中任一句柄对应的路径是否匹配,若否,则执行步骤s6。
s6:降低所述进程句柄的权限值。
s7:继续执行所述一程序,即放行所述一程序。由于游戏依赖系统进程,若不放行该程序,游戏就会发生崩溃,因此需让该程序继续进行,防止游戏发生崩溃。
本实施例通过先获取vr游戏的句柄表,得到可获取vr游戏内存的进程白名单,通过回调函数获取访问vr游戏的进程的路径,若该进程不在进程白名单内,则降低该进程句柄的权限值,使其无法访问到vr游戏的内存;本实施例解决了64位下inlinehook无法在底层使用的缺陷,实现了内存数据保护。
实施例二
请参照图4,本实施例是对应上述实施例的一种vr游戏内存数据的保护系统,包括:
第一获取模块1,用于获取vr游戏的句柄,得到句柄表;
创建模块2,用于创建回调函数;
触发模块3,用于当一程序进程访问所述vr游戏时,触发所述回调函数;
第二获取模块4,用于通过所述回调函数返回的进程句柄,获取所述一程序的进程路径;
降低模块5,用于若所述进程路径与所述句柄表中任一句柄对应的路径不匹配,则降低所述进程句柄的权限值。
进一步地,所述第二获取模块4包括:
第一获取单元41,用于通过回调函数获取所述一程序的进程句柄;
第二获取单元42,用于根据所述进程句柄,获取对应的进程路径。
进一步地,还包括:
继续执行模块6,用于继续执行所述一程序。
综上所述,本发明提供的一种vr游戏内存数据的保护方法及其系统,通过先获取vr游戏的句柄表,得到可获取vr游戏内存的进程白名单,通过回调函数获取访问vr游戏的进程的路径,若该进程不在进程白名单内,则降低该进程句柄的权限值,使其无法访问到vr游戏的内存;本发明可使其他进程无法访问vr游戏的内存,从而实现对vr游戏内存数据的保护。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。