本發(fā)明涉及內(nèi)存保護(hù)技術(shù)領(lǐng)域,尤其涉及一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法及其系統(tǒng)。
背景技術(shù):
目前,游戲?yàn)榱朔乐棺约旱膬?nèi)存被人修改,通常使用inlinehook技術(shù)(通俗地說(shuō)就是對(duì)函數(shù)執(zhí)行流程進(jìn)行修改,達(dá)到控制函數(shù)過(guò)濾操作的目的。理論上我們可以在函數(shù)任何地方把原來(lái)指令替換成我們的跳轉(zhuǎn)指令)來(lái)保護(hù)游戲的內(nèi)存塊,防止內(nèi)存被修改。但是,對(duì)于vr游戲來(lái)說(shuō),由于是vr游戲是64位的,而inlinehook技術(shù)是不能在64位底層下使用的,因此,目前仍沒(méi)有有效地保護(hù)vr游戲內(nèi)存的方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是:提供一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法及其系統(tǒng),可有效保護(hù)vr游戲的內(nèi)存數(shù)據(jù)。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法,包括:
獲取vr游戲的句柄,得到句柄表;
創(chuàng)建回調(diào)函數(shù);
當(dāng)一程序進(jìn)程訪問(wèn)所述vr游戲時(shí),觸發(fā)所述回調(diào)函數(shù);
通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑;
若所述進(jìn)程路徑與所述句柄表中任一句柄對(duì)應(yīng)的路徑不匹配,則降低所述進(jìn)程句柄的權(quán)限值。
本發(fā)明還涉及一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)系統(tǒng),包括:
第一獲取模塊,用于獲取vr游戲的句柄,得到句柄表;
創(chuàng)建模塊,用于創(chuàng)建回調(diào)函數(shù);
觸發(fā)模塊,用于當(dāng)一程序進(jìn)程訪問(wèn)所述vr游戲時(shí),觸發(fā)所述回調(diào)函數(shù);
第二獲取模塊,用于通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑;
降低模塊,用于若所述進(jìn)程路徑與所述句柄表中任一句柄對(duì)應(yīng)的路徑不匹配,則降低所述進(jìn)程句柄的權(quán)限值。
本發(fā)明的有益效果在于:通過(guò)先獲取vr游戲的句柄表,得到可獲取vr游戲內(nèi)存的進(jìn)程白名單,通過(guò)回調(diào)函數(shù)獲取訪問(wèn)vr游戲的進(jìn)程的路徑,若該進(jìn)程不在進(jìn)程白名單內(nèi),則降低該進(jìn)程句柄的權(quán)限值,使其無(wú)法訪問(wèn)到vr游戲的內(nèi)存;本發(fā)明可使其他進(jìn)程無(wú)法訪問(wèn)vr游戲的內(nèi)存,從而實(shí)現(xiàn)對(duì)vr游戲內(nèi)存數(shù)據(jù)的保護(hù)。
附圖說(shuō)明
圖1為本發(fā)明一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法的流程圖;
圖2為本發(fā)明實(shí)施例一的方法流程圖;
圖3為本發(fā)明一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)系統(tǒng)的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例二的系統(tǒng)結(jié)構(gòu)示意圖。
標(biāo)號(hào)說(shuō)明:
1、第一獲取模塊;2、創(chuàng)建模塊;3、觸發(fā)模塊;4、第二獲取模塊;5、降低模塊;6、繼續(xù)執(zhí)行模塊;
41、第一獲取單元;42、第二獲取單元。
具體實(shí)施方式
為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖詳予說(shuō)明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:降低不在進(jìn)程白名單的進(jìn)程的權(quán)限值。
請(qǐng)參閱圖1,一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法,包括:
獲取vr游戲的句柄,得到句柄表;
創(chuàng)建回調(diào)函數(shù);
當(dāng)一程序進(jìn)程訪問(wèn)所述vr游戲時(shí),觸發(fā)所述回調(diào)函數(shù);
通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑;
若所述進(jìn)程路徑與所述句柄表中任一句柄對(duì)應(yīng)的路徑不匹配,則降低所述進(jìn)程句柄的權(quán)限值。
從上述描述可知,本發(fā)明的有益效果在于:通過(guò)降低其他進(jìn)程的權(quán)限值,使其他進(jìn)程無(wú)法訪問(wèn)vr游戲的內(nèi)存,從而實(shí)現(xiàn)對(duì)vr游戲內(nèi)存數(shù)據(jù)的保護(hù)。
進(jìn)一步地,所述“通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑”具體為:
通過(guò)回調(diào)函數(shù)獲取所述一程序的進(jìn)程句柄;
根據(jù)所述進(jìn)程句柄,獲取對(duì)應(yīng)的進(jìn)程路徑。
由上述描述可知,回調(diào)函數(shù)會(huì)返回一個(gè)結(jié)構(gòu),該結(jié)構(gòu)中保存著該程序的進(jìn)程句柄,將進(jìn)程句柄進(jìn)行轉(zhuǎn)換即可得到進(jìn)程路徑。
進(jìn)一步地,所述“若所述進(jìn)程路徑不與所述句柄表中任一句柄對(duì)應(yīng)的路徑匹配,則降低所述進(jìn)程句柄的權(quán)限值”之后,進(jìn)一步包括:
繼續(xù)執(zhí)行所述一程序。
由上述描述可知,通過(guò)放行該程序,防止游戲發(fā)生崩潰。
請(qǐng)參照?qǐng)D3,本發(fā)明還提出一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)系統(tǒng),包括:
第一獲取模塊,用于獲取vr游戲的句柄,得到句柄表;
創(chuàng)建模塊,用于創(chuàng)建回調(diào)函數(shù);
觸發(fā)模塊,用于當(dāng)一程序進(jìn)程訪問(wèn)所述vr游戲時(shí),觸發(fā)所述回調(diào)函數(shù);
第二獲取模塊,用于通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑;
降低模塊,用于若所述進(jìn)程路徑與所述句柄表中任一句柄對(duì)應(yīng)的路徑不匹配,則降低所述進(jìn)程句柄的權(quán)限值。
進(jìn)一步地,所述第二獲取模塊包括:
第一獲取單元,用于通過(guò)回調(diào)函數(shù)獲取所述一程序的進(jìn)程句柄;
第二獲取單元,用于根據(jù)所述進(jìn)程句柄,獲取對(duì)應(yīng)的進(jìn)程路徑。
進(jìn)一步地,還包括:
繼續(xù)執(zhí)行模塊,用于繼續(xù)執(zhí)行所述一程序。
實(shí)施例一
請(qǐng)參照?qǐng)D2,本發(fā)明的實(shí)施例一為:一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法,所述方法基于vr設(shè)備游戲特定的內(nèi)存保護(hù)原理,包括如下步驟:
s1:獲取vr游戲的句柄,得到句柄表。
s2:創(chuàng)建回調(diào)函數(shù)。
s3:當(dāng)一程序進(jìn)程訪問(wèn)所述vr游戲時(shí),觸發(fā)所述回調(diào)函數(shù)。
s4:通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑;進(jìn)一步地,通過(guò)回調(diào)函數(shù)獲取所述一程序的進(jìn)程句柄,根據(jù)所述進(jìn)程句柄,獲取對(duì)應(yīng)的進(jìn)程路徑。
s5:判斷所述進(jìn)程路徑與所述句柄表中任一句柄對(duì)應(yīng)的路徑是否匹配,若否,則執(zhí)行步驟s6。
s6:降低所述進(jìn)程句柄的權(quán)限值。
s7:繼續(xù)執(zhí)行所述一程序,即放行所述一程序。由于游戲依賴系統(tǒng)進(jìn)程,若不放行該程序,游戲就會(huì)發(fā)生崩潰,因此需讓該程序繼續(xù)進(jìn)行,防止游戲發(fā)生崩潰。
本實(shí)施例通過(guò)先獲取vr游戲的句柄表,得到可獲取vr游戲內(nèi)存的進(jìn)程白名單,通過(guò)回調(diào)函數(shù)獲取訪問(wèn)vr游戲的進(jìn)程的路徑,若該進(jìn)程不在進(jìn)程白名單內(nèi),則降低該進(jìn)程句柄的權(quán)限值,使其無(wú)法訪問(wèn)到vr游戲的內(nèi)存;本實(shí)施例解決了64位下inlinehook無(wú)法在底層使用的缺陷,實(shí)現(xiàn)了內(nèi)存數(shù)據(jù)保護(hù)。
實(shí)施例二
請(qǐng)參照?qǐng)D4,本實(shí)施例是對(duì)應(yīng)上述實(shí)施例的一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)系統(tǒng),包括:
第一獲取模塊1,用于獲取vr游戲的句柄,得到句柄表;
創(chuàng)建模塊2,用于創(chuàng)建回調(diào)函數(shù);
觸發(fā)模塊3,用于當(dāng)一程序進(jìn)程訪問(wèn)所述vr游戲時(shí),觸發(fā)所述回調(diào)函數(shù);
第二獲取模塊4,用于通過(guò)所述回調(diào)函數(shù)返回的進(jìn)程句柄,獲取所述一程序的進(jìn)程路徑;
降低模塊5,用于若所述進(jìn)程路徑與所述句柄表中任一句柄對(duì)應(yīng)的路徑不匹配,則降低所述進(jìn)程句柄的權(quán)限值。
進(jìn)一步地,所述第二獲取模塊4包括:
第一獲取單元41,用于通過(guò)回調(diào)函數(shù)獲取所述一程序的進(jìn)程句柄;
第二獲取單元42,用于根據(jù)所述進(jìn)程句柄,獲取對(duì)應(yīng)的進(jìn)程路徑。
進(jìn)一步地,還包括:
繼續(xù)執(zhí)行模塊6,用于繼續(xù)執(zhí)行所述一程序。
綜上所述,本發(fā)明提供的一種vr游戲內(nèi)存數(shù)據(jù)的保護(hù)方法及其系統(tǒng),通過(guò)先獲取vr游戲的句柄表,得到可獲取vr游戲內(nèi)存的進(jìn)程白名單,通過(guò)回調(diào)函數(shù)獲取訪問(wèn)vr游戲的進(jìn)程的路徑,若該進(jìn)程不在進(jìn)程白名單內(nèi),則降低該進(jìn)程句柄的權(quán)限值,使其無(wú)法訪問(wèn)到vr游戲的內(nèi)存;本發(fā)明可使其他進(jìn)程無(wú)法訪問(wèn)vr游戲的內(nèi)存,從而實(shí)現(xiàn)對(duì)vr游戲內(nèi)存數(shù)據(jù)的保護(hù)。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。