李金峰,彭錦強,張凌,黃劍文
(惠州城市職業學院信息技術系,廣東惠州516025)
學校的計算機實驗室是重要的教學場所,在教學活動過程中,是禁止學生玩網絡游戲的[1-2]。但是,由于不少學生的自控力較弱,教師課堂管理壓力大等原因,學生在計算機實驗室上課玩網絡游戲的現象普遍存在[3]。研發智能識別游戲進程,禁止游戲軟件啟動或者關閉已啟動的游戲軟件的網絡游戲監控軟件,是禁止學生在計算機實驗室上課期間玩游戲的有效措施[4-5]。
提出一種通過內存占用大小的比較來識別游戲進程的方法,該方法應用簡單,對C/S架構的電腦游戲的識別準確率較高。
本項目的所有研究工作均在i7 7700 CPU,8GB RAM,win1064位操作系統的機器[6]上進行。
研究主要的方法為比較分析法。即通過對合法進程的內存(本文指專用工作集,Working Set-Private,下同)占用大小和游戲進程的內存占用大小進行對比分析,找出兩類進程內存占用的差異。
具體來說,主要采用了W檢驗(Shapiro-Wilk檢驗)、差異性分析和區間估計等方法。其中,W檢驗是檢是檢驗樣本容量3≤n≤50時,樣本是否符合正態分布的一種方法[7-8];差異性分析則用于分析游戲進程的內存占用大小與合法進程的內存占用大小是否存在顯著性差異;而區間估計則是通過最大似然估計法對服從正態分布的隨機變量X1(合法應用進程內存占用大小的值)和X2(游戲進程內存占用大小的值)的概率密度函數的參數進行估計。
獲取進程占用內存的信息,主要的流程是:首先啟動監控工具,然后依次啟動表1中的軟件,并且使用軟件進行作業,監控工具自動掃描進程信息,將所需數據保存到數據庫。
獲取進程信息的核心代碼如下:


這里采用T檢驗[9]來推斷兩個總體(合法應用的進程內存占用大小的值和游戲進程內存占用大小的值)的均值是否存在顯著差異。T檢驗分為單總體檢驗和雙總體檢驗。雙總體t檢驗是檢驗兩個樣本平均數與其各自所代表的總體的差異是否顯著。雙總體t檢驗又分為兩種情況,一是獨立樣本t檢驗,一是配對樣本t檢驗。獨立樣本t檢驗統計量為:

這里采用最大似然估計法估計概率密度函數。由上文可知,兩類進程占用內存大小的值均符合正態分布,概率密度函數的形式為:

待估計的參數為μ和σ2。
因此,θ=[θ1,θ2]T,θ1=μ,θ2=σ2.若X表示從總體中獨立抽取的N個樣本,則θ的似然函數為

解得均值和方差的估計量為:

根據采集的樣本數據,將占用內存大小的單位設為MB,則對合法應用進程內存占用大小的均值估計為,方差估計為;對游戲進程內存占用大小的均值估計為,方差估計為。因此,可分別估計它們的概率密度函數為f(1x),f(2x):

本次研究將所有進程分為合法進程和游戲進程兩大類,而兩者的區分特征是進程內存占用大小的值,根據上文分析可認為兩類進程占用內存大小的值都服從正態分布,且具有顯著性差異。根據求得的概率密度函數[11-13],對某進程是合法進程的概率的計算和是游戲進程的概率的計算通過以下方法進行:
1)如果進程占用內存大小的值x0≤1,該進程是合法進程的概率為:

該進程是游戲進程的概率[14]為:

2)如果進程占用內存大小的值x0≥1,該進程是合法進程的概率為:

該進程是游戲進程的概率為:

根據上文所述,游戲進程識別的流程是:首先是掃描系統中的所有進程,將連續讀取40次的進程占用內存大小的值取平均值,然后將進程內存占用大小的值[15-16]x按照上節所述方式計算概率,根據計算結果判斷該進程是合法進程還是游戲進程。本節主要闡述如何進行概率計算。
設某進程內存占用大小的值為x0。如果x0<~μ1(合法進程內存占用大小的均值估計量,見上節),將x0分別代入式⑥和式⑦進行計算,然后比較計算結果,若p1(x<x0)>p2(x<x0),認為該進程為合法進程;若p1(x<x0)<p2(x<x0),則認為該進程為游戲進程。如果x0≥~μ1,將x0分別代入式⑧和式⑨進行計算,然后比較計算結果,若p1(x<x0)>p2(x<x0),認為該進程為合法進程;若p1(x<x0)<p2(x<x0),則認為該進程為游戲進程。
由式(6)、(7)、(8)和(9)可知,概率的計算是將一般正態分布轉化成標準正態分布,然后通過查標準正態分布表求得結果。概率計算的C#實現代碼如下:


分別在一份常用的應用軟件清單和一份較流行的網絡游戲清單中各隨機抽取20個樣本對本游戲進程識別方法進行測試(兩份清單是通過對惠州城市職業學院的計算機實驗室、計算機及相關專業的教師和在校學生的調查得到)。其中,對合法應用軟件進程的識別測試結果如表2所示。

表2 合法進程識別測試情況表

誤報為游戲進程的合法進程數即是被進程監控工具關閉的合法進程數。由表6可知,20款合法軟件中,有3款被誤判為游戲,因此,本次測試中,游戲進程誤報率為15%。
進程監控工具一旦判斷某進程為游戲進程,則將該進程關閉。由表7可知,20款測試的游戲中,有19款游戲被監控工具在180秒內識別并且關閉,有1款游戲未能被識別(被認為是合法應用)。
定義2(游戲進程識別準確率):
不同種類的食蟻獸,體形大小相差懸殊,小食蟻獸大小如松鼠,僅350克左右,而大食蟻獸可重達25千克。小食蟻獸完全樹棲,并在高樹上覓食;而大食蟻獸則是地棲者,棲息于潮濕的森林和沼澤地帶,為晝行性動物。

本次測試中,游戲進程識別準確率為90%。
文中所介紹的基于進程內存占用大小的比較的游戲進程識別法,算法簡單,對C/S架構的電引入機器學習的方法可以讓基于進程內存占用大小的比較的游戲進程識別法適應更多的運行環境和提高游戲進程識別準確率。
參考文獻:
[1]高大強,管群.非法進程監控的設計[J].現代計算機,2007(11):90-93.
[2]王磊,劉磊.教學機房游戲監測與控制系統[J].南昌高專學報,2005(2):96-98.
[3]李寅輝,李錫祚.一種游戲監控系統的設計與實現[J].信息技術,2006(11):24-26.
[4]張寶政.基于實時擊鍵特征檢測的游戲禁止算法研究[J].信息安全,2012(9):32-34.
[5]李晨,張功萱,岳寶玲,等.一種基于條件隨機場的擊鍵特征身份鑒別方法[J].計算機應用研究,2014(7):2112-2115.
[6]Shanmugap R IYA D,Padmavathi G.An efficient feature selection technique for user authentication using keystroke dynamics[J].International Journal of Computer Science and Network Security,2011,11(10):191-195.
[7]鐘明全,李煥洲,唐彰國,等.基于虛擬機技術的可疑文件自動檢測系統[J].計算機應用,2010(12):3357-3362.
[8]鄒維福,張翼英,張素香,等.基于特征行為分析的木馬病毒檢測技術的研究[J].電信科學,2014(11):105-109.
[9]林宏弘,伍傳敏,張帥.基于OpenCV的Android體感游戲平臺的設計與實現[J].三明學院學報,2013,30(6):26-30.
[10]張領科,董家強.彈道一致性評定中的樣本順次正態性檢驗[J].火炮發射與控制學報,2015(2):68-72.
[11]何清,王震坤.正態性檢驗方法在教學研究中的應用[J].高等理科教育,2014(4):18-21.
[12]姜旬恂.信息設計在新媒體展示空間中的識別性測試報告——《發明工坊1-重現藍海之都光芒》游戲界面信息識別性測試[J].藝術科技,2013(7):383-384.
[13]徐峰,李黨偉,鄧心歡,等.基于體感的突圍賽游戲設計和實現[J].吉林大學學報(信息科學版),2013,31(4):409-413.
[14]潘智剛,姚敏鋒.基于語音識別的Android游戲應用[J].現代計算機,2015(5):36-39.
[15]王盛林.基于PHP的socket游戲服務器設計與實現[J].電子設計工程,2016,24(20):125-128.
[16]吳偉民,范煒鋒,王志月,等.基于特征PE文件自動免殺策略[J].計算機工程,2016(12):118-121.