999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

檢測游戲是否存在作弊行為的方法

2017-05-30 13:58:25黃佳
企業科技與發展 2017年3期

黃佳

【摘 要】隨著智能手機和平板電腦的普及,移動手機用戶越來越多,移動游戲的市場規模也隨之暴漲,如此大的市場規模,必定會引來手游行業中的激烈競爭。一款游戲若想在激烈的市場競爭中生存下來,在游戲中需內置健全的保護措施。因此,建立檢測游戲是否存在作弊行為的機制是十分必要的。它既可以加固游戲,保證游戲擁有正常的規則環境,也可以防止其他方對游戲的惡意攻擊和破壞,起到積極的保護作用。

【關鍵詞】Unity;檢測作弊;Apk;Android

【中圖分類號】TP393 【文獻標識碼】A 【文章編號】1674-0688(2017)03-0133-03

在《2016中國游戲產業報告》中,在國內火爆的手游取得了驕人的成績,移動游戲的市場份額第一次超過客戶端游戲,成為份額最大的細分市場,國內銷售收入達到819.2億元,占比超過客戶端游戲市場,達到49.5%,成為份額最大、增速最快的細分市場。隨著行業的發展,國內手游市場還遠未達到飽和狀態,VR設備的出現,VR概念手游的提出,VR游戲的崛起,移動手游行業潛在增長點可望在未來數年內進一步成熟。SuperData等歐美地區的各種權威的統計報告都顯示VR市場有巨大的空間,Oculus Rift、HTC Vive和PSVR三大VR設備相繼發布,也為國內的VR游戲開發者提供了更有潛力的平臺。如此大的市場規模,手游行業中各種正常和非正常的競爭是十分激烈的。手游產品若想獲得更長的生命周期,除了產品完整精美之外,能夠經得起玩家搗鼓,抗第三方工具摧殘,安全地運行也至關重要。因此,對游戲加固,在游戲中建立檢測是否存在作弊行為的機制是十分必要的。

1 檢測游戲是否存在作弊行為的理論

1.1 模擬器檢測

?譹?訛模擬器具有一定的特征,一般的檢測方法主要是對模擬器的IMSI、IDS、默認文件、默認號碼等幾個方面進行檢測。在得知了這些信息后,只需在運行時進行檢測,如果檢驗結果與默認值吻合,那么檢測設備便是模擬器,這是較為傳統的檢測方法。②基于模擬器CPU信息的檢測,主要是檢測CPU信息是否包含intel、amd等字段。相較于傳統方法,該方法有了更高的檢測成功率,很多模擬器目前對于CPU信息還無法進行模擬。類似的原理,還可以檢測google_sdk,sdk,sdk_x86,vbox86p等相關信息來識別是否是模擬器。③關鍵路徑檢測特定模擬器,對于某些具有反防作弊功能的模擬器,需要特定的檢測方法,bluestacks成功躲避了前2種檢測方法,檢測這類模擬器時可以根據總結出的一些bluestacks的關鍵路徑進行檢測。④電池信息檢測,可以從電池的溫度和電量等信息入手,檢測溫度在使用過程中是否一直保持不變,或者電量一直是固定值并且不是百分之百等,可以鑒別出genymotion、bluestacks等主流模擬器。⑤模擬器檢測與模擬器反檢測都在不斷地更新迭代中,無法確保哪一種方法會長久使用,很多時候在檢測模擬器的過程中,都不是只使用某一種固定的方法,需要具體問題具體分析,也需要用多種方法來綜合檢測。檢測出模擬器玩家,可以有效地控制和防止黑客玩家在電腦端使用模擬器對游戲外掛、作弊、分析調試,保證玩家在游戲既定的環境下操作及游戲,保障游戲的順利運營。

1.2 第三方加速器檢測

手游和端游的通用加速功能原理都相同,通常游戲需要以幀為單位播放畫面,播放畫面過程中計算每幀動畫播放所需時間(也可理解為2個畫面切換的間隔時間),游戲需要調用C庫函數獲取系統時間以供計算每幀更新。目前,手機端絕大部分游戲基于兩大引擎,分別為Cocos2D引擎、Unity3D引擎。引擎中實現了游戲每幀更新相關處理邏輯(包括每幀更新時間的計算),因此導致使用固定引擎的游戲每幀更新所需時間計算過程中調用的Libc.so模塊完全相同。通過Unity3D的代碼內容可看出,Unity3D引擎為游戲開發者提供通用的Update函數,該函數會在游戲每幀更新的邏輯進行調用,每幀更新邏輯完全封裝于Unity3D引擎提供的LibtUnity.so模塊中。

手游通用加速出現的根本原因如下:絕大部分手機游戲使用兩大引擎(Cocos2D引擎和Unity3D引擎)開發游戲,兩大引擎采用固定的Libc.so函數計算游戲每幀更新(Cocos2D引擎通過libc.so的gettimeofday函數計算每幀更新,Unity3D引擎通過調用clock_gettime計算每幀更新)所需時間,從而通過修改引擎獲取時間或者影響計算每幀更新相關變量便能實現手游通用加速功能。

基于手機端采用兩大引擎實現的游戲,通用的游戲加速功能可通過以下方式實現。?譹?訛基于游戲邏輯的:修改游戲計算每幀更新所需變量;通過修改代碼影響每幀計算的時間結果。?譺?訛與游戲邏輯無關的:修改主邏輯模塊導入表;通過InlineHook方式修改Libc.so模塊的時間函數(gettimeofday/clock_getime)或者修改更加底層的代碼。基于游戲邏輯實現的加速修改,針對每幀更新所需變量的修改,可以通過檢測是否存在內存修改進行阻攔,此方法將在下文具體說明;針對通過修改代碼影響每幀計算的時間結果實現的加速,可以在發布游戲的時候,將游戲代碼進行加密,防止游戲源代碼被非法竊取、篡改,以達到黑客玩家通過修改代碼達到加速的目的。目前,外網主流的游戲整體加速器(葫蘆俠變速精靈、叉叉及圈圈加速器、燒餅修改器、晃悠游戲大師),均采用與游戲邏輯無關的的方式實現通用加速功能,不同引擎,加速器修改了不同Libc.so相關函數。葫蘆俠變速精靈加速功能針對Cocos引擎修改了所有模塊的gettimeofday函數導入表,其他幾款工具修改gettimeofday、clock_getime的Libc.so相關代碼實現加速功能,每款工具基于不同引擎的加速功能實現方式匯總見表1。

因此,通過檢測時間函數是否存在異常,檢測設備進程中是否存在第三方加速器的特征,便可檢測出黑客玩家是否有可能使用加速器,進而加以必要的約束,防止黑客玩家使用加速器糟蹋游戲,變相攻擊游戲服務器。

1.3 內存修改檢測

一般內存修改的原理是第三方工具使用打開進程等類似的api以適當的權限打開游戲進程,找出數據段范圍,然后對該進程的地址范圍進行掃描后,修改數據內容,以達到內存修改的目的。

Android系統是基于Linux系統,Android要針對其他進程進行內存修改是基于Ptrace系統調用,Ptrace提供了一種父進程可以控制子進程運行,并可以檢查和改變它的核心image。它主要用于實現斷點調試。一個被跟蹤的進程運行中,直到發生一個信號,則進程被中止,并且通知其父進程。在進程中止的狀態下,進程的內存空間可以被讀寫。父進程還可以使子進程繼續執行,并選擇是否忽略引起中止的信號。在Linux系統中,可以通過Ptrace系統調用實現對進程的內存修改。大致過程如下:①通過遠程進程pid,attach遠程進程。②獲取遠程進程寄存器值并保存,以便注入完成后恢復進程原有狀態。③獲取遠程進程系統mmap、dlopen、dlsym調用地址。④根據值搜索和proc//maps中的地址和偏移量與前端交互。⑤根據值的變化,確定內存地址(一般沒辦法精確到一個)。⑥根據內存地址修改成前端需要的值。⑦恢復遠程進程寄存器。⑧DETACH遠程進程。其中,④⑤兩步可以有多種方式來搜索定位。

因此,要防止內存被修改,必須對游戲內存數據進行專業高級保護。首先,可以對重要的內存數據進行加密后,存儲于內存之中,每次讀取使用時,都需要相應的秘鑰解密,提高黑客玩家解析加密后的內存數據難度,降低內存數據被篡改的風險。其次,通過限制游戲進程的被訪問權限,可以有效地防范和控制游戲內存數據被篡改,避免游戲內存中的重要數據被竊取,防止黑客通過內存信息破解游戲,保護游戲運行中的信息安全。

2 檢測游戲是否存在作弊行為的實現

通過以上原理及說明,在Android游戲中,可以把以上檢測行為用代碼方式做成一個so(share object)動態鏈接庫,生成二進制文件,加入Android游戲apk安裝包中,當游戲運行時,Android可以從應用層通過JNI調用底層的C/C++函數按既定規則來檢測游戲中是否存在作弊行為,從而達到對游戲作弊行為進行自動化檢測,進而達到對游戲apk安裝包加固的目的,以保護游戲的安全運行。

3 檢測作弊行為的具體方法

3.1 檢測apk是否在模擬器環境下運行

檢測步驟如下:?譹?訛檢測當前系統是否存在相關的庫文件,如“/system/lib/libc_malloc_debug_qemu.so”“/sys/qemu_trace”“/system/bin/qemu-props”等,存在這些文件則說明運行在模擬器環境。?譺?訛檢測默認IMSI:310260000000000。?譻?訛檢測默認ID:0000000

00000000。?譼?訛檢測默認號碼,如:“15555215554”“15555215556”“15555215558”等。?譽?訛檢測當前系統是否存在“/dev/socket/qemud”“/dev/qemu_pipe”等虛擬設備,存在這些文件則說明運行在模擬器環境。?譾?訛檢測當前系統的配置屬性,如“vbox86p”“google_

sdk”“goldfish”“sdk”“sdk_x86”等,存在這些屬性則說明運行在模擬器環境。?譿?訛檢測cpu信息,如“intel”“amd”。?讀?訛一些bluestacks的關鍵路徑的檢測,如:“/data/app/com.bluestacks.appmart1.apk”“/data/app

/com.bluestacks.BstCommandProcessor-1.apk”

“/data/app/com.bluestacks.help-1.apk”“/data/app/

com.bluestacks.home-1.apk”等。

3.2 檢測是否存在第三方加速器

檢測步驟如下:?譹?訛枚舉當前進程的模塊,檢測是否存在第三方加速器特有的so文件,存在則說明使用了第三方加速器。?譺?訛檢測系統庫libc.so的系統時間函數gettimeofday和clock_gettime是否被inline hook,如果被inline hook,則說明使用了第三方加速器。?譻?訛檢測系統庫libc.so的函數導出表的gettimeofday和clock_gettime函數地址是否被修改,如果被修改則說明使用了第三方加速器。

3.3 檢測是否存在內存修改

?譹?訛開啟反調試、反附加,檢測游戲是否被調試器附加,探知程序是否正在被調試,防止其他方試圖用反匯編之類的方法破解程序,防止第三方工具隨意讀取程序數據。?譺?訛枚舉當前進程的模塊,檢測是否存在第三方內存修改器特有的so文件,以判斷是否存在第三方內存修改器。

4 結語

擁有檢測游戲是否存在作弊行為的方法是一款游戲標準的加固內容,也是游戲成熟的表現。它類似于電腦操作系統中的殺毒軟件,像保護操作系統文件不被病毒侵害一樣,保護游戲在一個良好的環境下運行,阻擋黑客玩家和競爭對手通過不正常手段對游戲功能和游戲環境進行破壞,保障普通玩家和支付玩家在游戲中應得的商品和服務,促進游戲中的正常交易,保障了開發者的收益和消費玩家的利益,促進游戲產業的發展和游戲市場銷售份額的提高,對健康的游戲生態環境營造有著重大意義。

參 考 文 獻

[1](美)德雷克.Android安全攻防權威指南[M].北京:人民郵電出版社,2015.

[2]佚名.Unity3D[EB/OL].http://Unity3D.com,2016-12-05.

[3]佚名.Android模擬器檢測常用方法[EB/OL].http://

blog.csdn.net/sinat_33150417/article/details/51320228,2016-05-05.

[4]Felix Matenaar,Patrick Schulz.Detecting Android

Sandboxes[EB/OL].http://www.dexlabs.org/blog/btd-

etect,2012-08-10.

[5]佚名.手機游戲加速器的工作原理[EB/OL].https://

www.zhihu.com/question/22741208,2014-08-19.

[6]張躍騫.Android APP保護及破解[J].中國教育網絡,2016(Z1):44-46.

[7]豐生強.Android軟件安全與逆向分析[M].北京:人民郵電出版社,2013:78-90.

[8]杜吉志,徐明昆.Android系統內存管理研究及優化[J].軟件,2012,24(5):69-80.

[9]佚名.Android下內存修改的研究匯總[EB/OL].http://

www.cnblogs.com/xieyuan/p/3787253.html,2014-

05-21.

[責任編輯:陳澤琦]

主站蜘蛛池模板: 久久一本精品久久久ー99| 制服丝袜一区| 国产日韩精品欧美一区灰| 台湾AV国片精品女同性| 久久精品娱乐亚洲领先| a在线观看免费| 亚洲色精品国产一区二区三区| AV网站中文| 国产一二三区在线| 国产系列在线| av大片在线无码免费| 五月天综合婷婷| 欧美午夜精品| 国产精品亚洲专区一区| 亚洲黄色网站视频| 国产清纯在线一区二区WWW| 99视频在线看| 秋霞一区二区三区| 一区二区三区精品视频在线观看| 中文字幕无线码一区| 久青草国产高清在线视频| a毛片在线播放| 日韩最新中文字幕| 欧美区一区二区三| 中文字幕无线码一区| 久热99这里只有精品视频6| 国产凹凸一区在线观看视频| 亚洲高清日韩heyzo| 91精品最新国内在线播放| 国产真实乱了在线播放| 四虎永久在线| 亚洲第一页在线观看| 国产在线观看成人91| 成人一区在线| 97精品国产高清久久久久蜜芽| 亚洲国产高清精品线久久| 美女被操黄色视频网站| 热久久国产| 国产91全国探花系列在线播放| 日韩 欧美 国产 精品 综合| 真人高潮娇喘嗯啊在线观看| 亚洲无码精彩视频在线观看 | AV网站中文| 成人国产小视频| 婷婷成人综合| 国产精品lululu在线观看| 尤物精品国产福利网站| 国产精品免费久久久久影院无码| 91成人在线免费视频| 欧美成人一级| 麻豆国产精品一二三在线观看| 日本欧美中文字幕精品亚洲| 亚洲日韩精品伊甸| 五月婷婷综合在线视频| a级毛片免费在线观看| 亚洲不卡影院| 日韩欧美国产综合| jizz在线免费播放| 色天天综合久久久久综合片| 91精品视频在线播放| 91欧美在线| 日本午夜三级| 色综合天天操| 丁香六月激情综合| 午夜激情福利视频| 久久久噜噜噜| 久久国产拍爱| 亚洲午夜国产片在线观看| 永久成人无码激情视频免费| 亚洲成人福利网站| 72种姿势欧美久久久久大黄蕉| 永久毛片在线播| 东京热av无码电影一区二区| 精品无码国产自产野外拍在线| 亚洲第一成年网| 国产一区自拍视频| 亚洲熟女中文字幕男人总站| 国产无码网站在线观看| 国产精品99在线观看| 欧美精品黑人粗大| 欧美一级高清片欧美国产欧美| 国产美女在线免费观看|