目錄
前言
1、Virbox
一、Virbox 是怎么做的?
1、如何對程序進(jìn)行保護(hù)?
2、如何對資源進(jìn)行保護(hù)?
3、使用加密工具前后比較
二、Virbox 保護(hù)方案特點(diǎn)
l?更安全
l?更全面
l?更簡單
2、DES和RSA加密算法
一、DES加密算法
二、RSA加密算法
RSA加密算法的基本流程如下:
網(wǎng)絡(luò)游戲數(shù)據(jù)文件加密方案(基于DES和RSA加密算法)
網(wǎng)絡(luò)游戲安全性的數(shù)據(jù)文件加密方案的意義
總結(jié)
前言
據(jù)統(tǒng)計(jì),市面上萬款游戲中,其多數(shù)存在被破解、惡意代碼插入、廣告插入、外掛、二次打包等安全問題。而這些安全問題為企業(yè)帶來隱患是,研發(fā)難度增加,研發(fā)成本的提高、玩家付費(fèi)意愿減低、游戲失去公平性,玩家流失,直接損失收入 —— 因此,破除游戲風(fēng)險(xiǎn)對于開發(fā)者來說十分重要。
1、Virbox
就此情況,Virbox應(yīng)運(yùn)而生:
Virbox用戶工具是在用戶端運(yùn)行的可視化工具,可以理解為Virbox許可證服務(wù)的可視化界面。您可以通過virbox用戶工具查看許可證信息。它是一套專業(yè)的系統(tǒng)安全服務(wù)組件。它在客戶端上運(yùn)行,充當(dāng)整個virbox LM平臺的中心。必須通過virbox用戶工具執(zhí)行所有軟件保護(hù)和許可證管理功能。
一、Virbox 是怎么做的?
1、如何對程序進(jìn)行保護(hù)?
Virbox Protector、Virbox AHS?分別可以防止靜態(tài)分析、動態(tài)調(diào)試 Unity3D 的軟件產(chǎn)品,具有如下特性:
(1)一鍵加密你的代碼邏輯,無法反編譯,無法 dump 內(nèi)存。
(2)不降低游戲幀數(shù)。
(3) Assembly-CSharp.dll 代碼按需解密,只有調(diào)用到才會在內(nèi)存解密,不調(diào)用不解密,黑客無法一次解出所有的代碼。
(4)完整授權(quán)方案,支持云許可、軟許可、硬許可、 網(wǎng)絡(luò)鎖許可 ,支持限制時(shí)間、限制次數(shù)、限制網(wǎng)絡(luò)并發(fā)。
(5)自帶反黑引擎,驅(qū)動級別反調(diào)試,秒殺市面的所有調(diào)試器。
2、如何對資源進(jìn)行保護(hù)?
對 Unity3D 資源的保護(hù)方式主要是通過 Virbox 加殼工具結(jié)合 DS Protector 進(jìn)行保護(hù)。
DS Protector:DS Protector 是深思自主研發(fā)的程序數(shù)據(jù)保護(hù)工具,它彌補(bǔ)了加殼工具 Virbox Protector 的功能。Virbox Protector 是對程序編譯后的二進(jìn)制代碼進(jìn)行的保護(hù),配合 DS Protector 數(shù)據(jù)保護(hù)工具就形成了代碼,數(shù)據(jù),授權(quán),三位一體的防護(hù)。
而對于 Unity 引擎開發(fā)的程序的保護(hù)方式主要是對 Assembly-CSharp.dll 進(jìn)行加密,可以保護(hù) Unity 的主要代碼邏輯不被反編譯,從而最大程度保護(hù)軟件 開發(fā)商的合法權(quán)益,同時(shí) DS Protector 可以對 Unity 引擎開發(fā)的軟件中的 .ress 和 resources 等資源文件進(jìn)行加密防止軟件或游戲中的資源被非法提取。
3、使用加密工具前后比較
(1)資源文件加密后效果
加密前:
加密后:
(2)dnspy 反編譯被加殼的效果:
加殼前:
加殼后:
分析:雖然圖片清晰度難以具體分析代碼數(shù)據(jù),但是很明顯的從對比的結(jié)果可以看到很多代碼信息已經(jīng)丟失,再次進(jìn)行分析時(shí)也會有很大困難。
(3)PC 上的 X64Dbg 和 OllyDbg 調(diào)試失敗與附加失敗
分析:Virbox AHS 提供的這種針對動態(tài)調(diào)試的保護(hù)方案在實(shí)時(shí)分析程序時(shí)會起到顯著的作用。
(4)Cheat-Engine 讀取內(nèi)存失?。ㄐ枰碌姆春谝嬷С郑缟钏紨?shù)盾等)
分析:通過對原程序內(nèi)存數(shù)據(jù)的保護(hù),想使用修改數(shù)據(jù)的形式來進(jìn)行作弊的惡意行為也會被拒之門外。
二、Virbox 保護(hù)方案特點(diǎn)
l?更安全
加固強(qiáng)度高,有效對抗多種反編譯和調(diào)試工具(IDA 等工具),防止脫殼
l?更全面
支持 Arm32, Arm64, x86, x64 多種 CPU 架構(gòu)
l?更簡單
提供工具和命令行操作,編譯、加殼一體化快速完成
只要是 Unity 開發(fā)的游戲,無論是 PC 端游戲還是移動端游戲,Virbox 都可以給出簡單安全的解決方案,讓游戲開發(fā)者可以將精力投入到開發(fā)中去。
2、DES和RSA加密算法
一、DES加密算法
DES屬于對稱加密體制,具有信息傳輸?shù)陌踩愿?、?jì)算開銷時(shí)間少、處理速度快(每秒加密4.3萬次)的特點(diǎn),尤其適合對大量數(shù)據(jù)和大文件加密保護(hù)。DES加密算法的基本原理,如圖所示:
DES是將64位的明文加密成64位的密文的分組加密算法,其密鑰長度為64位。它在一個56位密鑰的控制下,將按64位分組的明文信息加密。通常,人們用c= DESk(m)表示利用密鑰k對明文m加密得到密文c的過程;用m= DESk(c)表示利用密鑰k對密文c解密得到明文m的過程。
DES加密算法的加密過程由16個獨(dú)立的加密循環(huán)組成,每個循環(huán)各使用一個從主密鑰中生成的自有密鑰K(1),…,K(16)和加密函數(shù)。對于DES加密算法的每一次循環(huán),已知密鑰的加密實(shí)際只需一次48比特的運(yùn)算,而不知密鑰的攻擊者卻需要作出248次嘗試,因此總的嘗試次數(shù)高達(dá)2768,其攻擊將會是得不償失的。
二、RSA加密算法
RSA加密算法的安全性是基于大整數(shù)素因子分解的困難性。1976年Diffie和Hellman提出了非對稱加密系統(tǒng)的思想,1977年由Rivest、Shamir和Adleman首次實(shí)現(xiàn)了著名的RSA加密系統(tǒng),它至今仍是使用最廣泛的非對稱加密算法。
RSA加密算法的基本流程如下:
(1)隨機(jī)地選擇兩個秘密的大素?cái)?shù)p和q;
(2)計(jì)算公開的模數(shù)r=p×q和歐拉指標(biāo)函數(shù)φ(r)=(p -1)(q-1);
(3)選擇一個與φ(r)互素,即滿足gcd(e,φ(r))=1的量e,作為公鑰;
(4)用歐幾里得(Eu,clid)算法計(jì)算模數(shù)為φ(r)時(shí)e的乘法逆元,即求滿足de≡1(modφ(r))的d;
(5)將明文m(0<m<r-1)按模r自乘d次冪以完成加密操作,記為c=RSA(m)=mdmodr,將密文c按模r自乘e次冪以完成解密操作,記為m= RSA-1(c)=cemodr。
RSA加密算法的特點(diǎn)是,選擇固定的較小加密密鑰來提高運(yùn)算速度,并不降低整個系統(tǒng)的安全性。因此,可考慮使用一些較小的素?cái)?shù)(例如65537)作為公開密鑰,而其解密密鑰的獲得則可通過Euclid算法求得。
網(wǎng)絡(luò)游戲數(shù)據(jù)文件加密方案(基于DES和RSA加密算法)
由于信息傳輸?shù)陌踩允腔诿荑€的安全性,故只要選擇一個長度適中的密鑰生命周期,通過使用DES和RSA加密算法,對在網(wǎng)絡(luò)中傳輸?shù)挠螒驍?shù)據(jù)文件進(jìn)行加密,就可以保證在此周期內(nèi)密鑰難于被攻破。
此外,為了防止“攻擊者將游戲數(shù)據(jù)包攔截后對服務(wù)器進(jìn)行延遲再發(fā)”的重放攻擊,還應(yīng)在封包內(nèi)加入必要的時(shí)間戳TS(time starnp),進(jìn)行時(shí)間核查過濾實(shí)時(shí)監(jiān)控——“在服務(wù)器端和客戶端分別設(shè)置一個寬度合適的時(shí)間窗口,只要超過時(shí)間窗口的數(shù)據(jù)包將會被自動丟棄”,就能有效抵御重放攻擊。
基于以上的思路,網(wǎng)絡(luò)游戲數(shù)據(jù)的文件加密方案可按如圖所示的加密傳輸流程圖進(jìn)行:
文字流程解讀:
(1)客戶端向服務(wù)器端發(fā)送明文的CONN信息,請求建立連接。服務(wù)器端收到該信息后,隨機(jī)產(chǎn)生一個DES對稱密鑰key,使用服務(wù)器端保密的RSA私鑰d加密數(shù)據(jù)key得到密文KEY。
(2)服務(wù)器端將經(jīng)過加密的數(shù)據(jù)KEY發(fā)送到已經(jīng)建立了連接的客戶端,客戶端用RSA公鑰e解密該數(shù)據(jù),得到DES密鑰key。
(3)客戶端將需要發(fā)送到服務(wù)器端的明文數(shù)據(jù)m1,加上時(shí)間戳TSi后,使用密鑰key經(jīng)過DES算法加密后得到密文c2,將c2發(fā)送到服務(wù)器端。服務(wù)器端接收到密文c1后,使用密鑰key經(jīng)過DES加密算法解密后,即可檢驗(yàn)時(shí)間戳TS,,如果在時(shí)間窗口內(nèi),就處理數(shù)據(jù)m1。
(4)服務(wù)器端將需要反饋到客戶端的明文數(shù)據(jù)m2,加上時(shí)間戳TS2后,使用密鑰key經(jīng)過DES加密算法加密后得到密文C2,將C2發(fā)送到客戶端。客戶端接收到密文C2后,使用密鑰key經(jīng)過DES算法解密后,即可檢驗(yàn)時(shí)間戳TS,,如果在時(shí)間窗口內(nèi),就處理數(shù)據(jù)m2。
(5)反復(fù)進(jìn)行以上操作。
(6)客戶端將斷開連接的信息disconn,加上時(shí)間戳TS。后,使用密鑰key經(jīng)過DES加密算法加密得到密文DISCONN,將DISCONN發(fā)送到服務(wù)器端。在確認(rèn)連接已斷開后,銷毀密鑰key。
(7)服務(wù)器端接收到密文DISCONN后,使用密鑰key經(jīng)過DES算法解密后,檢驗(yàn)時(shí)間戳TS。,如果在時(shí)間窗口內(nèi),就斷開與客戶端的連接。在確認(rèn)連接已斷開后,銷毀密鑰key。
網(wǎng)絡(luò)游戲安全性的數(shù)據(jù)文件加密方案的意義
首先,DES加密算法和RSA加密算法本身都是健壯性很強(qiáng)的加密算法,故要在加密算法上尋找陷門進(jìn)行破解,事實(shí)上基本已無可能,而就是采用耗費(fèi)天文數(shù)字般時(shí)間、人力、物力、財(cái)力的窮舉法,也將使攻擊者無法、無力、無益來破解網(wǎng)絡(luò)游戲數(shù)據(jù)。
其次,DES加密算法的密鑰是隨機(jī)產(chǎn)生的,并且只在從游戲者登陸游戲到退出游戲的這段時(shí)間內(nèi)有效。因此,就算攻擊者耗費(fèi)九牛二虎之力破解了一次密鑰,他下一次登陸游戲時(shí),該密鑰已失效,使其再次破解又只能再重新耗費(fèi)高昂代價(jià)。同時(shí),為了避免攻擊者采用長期掛線的手段攻擊數(shù)據(jù)包,也可以設(shè)置游戲者在線一定長時(shí)間(比如一天)后就自動對密鑰進(jìn)行及時(shí)更新,以增強(qiáng)密鑰的安全性。
第三,在游戲時(shí)傳送的數(shù)據(jù)包中,都加入了時(shí)間戳,并且與游戲數(shù)據(jù)一起進(jìn)行了加密,攻擊者要修改時(shí)間戳將是一件非常困難的事情,重放攻擊數(shù)據(jù)包也基本不再可能。
第四,對于在線人數(shù)眾多的網(wǎng)絡(luò)游戲來說,大量的密鑰管理需要大量的計(jì)算機(jī)資源,而且對大量數(shù)據(jù)進(jìn)行DES加密也對計(jì)算機(jī)的運(yùn)行速度提出了相當(dāng)高的要求。“非法外掛”的私服者要進(jìn)行大規(guī)模的數(shù)據(jù)處理,也是相當(dāng)困難的,從而在一定程度上防止了非法私服的出現(xiàn)與泛濫。文章來源:http://www.zghlxwxcb.cn/news/detail-788026.html
總結(jié)
市場的驅(qū)動需求是最大的發(fā)起者。由于有人想免費(fèi)使用,盜版、破解等軟件層出不窮,無需許可即可免費(fèi)下載,各種手段層出不窮。但恰恰相反,正是因?yàn)橛腥绱硕嗟穆闊┲圃煺?,軟件加密行業(yè)才以更高的速度發(fā)展。文章來源地址http://www.zghlxwxcb.cn/news/detail-788026.html
到了這里,關(guān)于以unity3d為例解讀:游戲數(shù)據(jù)加密的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!