上海辰星電子數(shù)據(jù)司法鑒定中心對軟件相似性及破壞性程序的鑒定
【案情簡介】
2011年,上海市某區(qū)一家網(wǎng)絡(luò)技術(shù)公司經(jīng)自主研發(fā),制作了一款網(wǎng)絡(luò)游戲?qū)?zhàn)平臺。通過該游戲平臺玩家可進(jìn)行互聯(lián)網(wǎng)實時聯(lián)機(jī)對戰(zhàn),深受廣大玩家歡迎。自2015年1月起,有玩家發(fā)現(xiàn)游戲?qū)?zhàn)平臺中出現(xiàn)了一款外掛程序,該外掛程序可以使玩家在對戰(zhàn)時獲得壓倒性的優(yōu)勢,該行為破壞了游戲的平衡性,導(dǎo)致大量玩家迅速流失,給該網(wǎng)絡(luò)技術(shù)公司造成了巨額經(jīng)濟(jì)損失,后該公司向上海警方報案。
警方接報后,迅速展開偵查,抓獲犯罪嫌疑人曹某和黃某,兩名犯罪嫌疑人對其犯罪事實供認(rèn)不諱。據(jù)交代,曹某大學(xué)畢業(yè)后,曾經(jīng)任職于本案中涉及的網(wǎng)絡(luò)技術(shù)公司,并且從事反外掛技術(shù)的研發(fā)。曹某利用任職期間非法獲取的軟件源代碼,針對該游戲平臺制作了外掛程序。后曹某將外掛程序以單價30元至100元不等的價格出售給黃某,再由黃某經(jīng)營的網(wǎng)店加價出售給游戲平臺玩家。僅2015年1月至7月間,兩人以銷售外掛程序牟利,非法經(jīng)營數(shù)額高達(dá)210余萬元。
【鑒定過程】
(一)涉案數(shù)據(jù)固定保全
1.外掛服務(wù)器端程序的固定保全
在送檢硬盤中發(fā)現(xiàn)名為“FlashFXP”的遠(yuǎn)程FTP共享程序文件夾和名為“fuckdota”的服務(wù)器配置文件夾,其中共發(fā)現(xiàn)涉案文件1,151個,大小共計1,170,824,285字節(jié)。
通過程序“FlashFXP”連接歷史IP地址“139.193.17.82”,發(fā)現(xiàn)名為“home”的服務(wù)器配置文件夾,其中發(fā)現(xiàn)涉案文件3,250個,大小共計923,630,140字節(jié)。
2.外掛客戶端程序的固定保全
在送檢光盤中發(fā)現(xiàn)名為“8.6.exe”的外掛客戶端程序,計算其SHA256校驗碼為“ea5ab5c67a5bb30e397e6b4bb351cf8a7bd72b4d7c5521420196834a18c76ccc”。
3.外掛程序源代碼的固定保全
在送檢硬盤中發(fā)現(xiàn)名為“branch2”的涉案源代碼文件夾,其中發(fā)現(xiàn)涉案文件1,008個,大小共計583,868,093字節(jié)。
(二)源代碼相似性比較
1.外掛源代碼的檢驗
在上述固定保全的涉案源代碼文件夾“branch2”內(nèi)發(fā)現(xiàn)核心源代碼文件夾“core”,其中發(fā)現(xiàn)涉案文件240個,大小共計203,425,888字節(jié)。
2.樣本的檢驗
在樣本光盤中發(fā)現(xiàn)共1個名為“反外掛系統(tǒng)核心源代碼”的文件夾,其中發(fā)現(xiàn)核心源代碼文件8個,大小共計170,357字節(jié)。
3.源代碼相似性檢驗
將外掛源代碼文件與樣本光盤中的核心源代碼文件進(jìn)行相似性比較(表1)。經(jīng)檢驗,在涉案源代碼中,共發(fā)現(xiàn)21個源代碼函數(shù)與網(wǎng)絡(luò)技術(shù)公司提供的核心源代碼樣本文件中的源代碼函數(shù)完全一致,共計有效代碼行數(shù)314行。
(三)外掛程序的功能檢驗
1.游戲平臺的固定保全
對“11對戰(zhàn)平臺”官網(wǎng)上的客戶端程序進(jìn)行固定保全,獲得游戲平臺客戶端程序“5211install_1247.exe”,計算該文件的SHA256校驗碼為“4f9879b2b8be59d47ed2f8a6101d6df0eb1956909f816a977fdbc997402b6a8a”。
2.游戲正常運(yùn)行過程的固定保全
在鑒定工作站上安裝游戲平臺客戶端程序“5211install_1247.exe”和對戰(zhàn)游戲程序魔獸爭霸3 V1.24。
登錄“11對戰(zhàn)平臺”,創(chuàng)建以魔獸爭霸地圖Dota6.77c AI為模版的對戰(zhàn)游戲。進(jìn)入游戲,等待對方游戲角色出現(xiàn)后,查看對方地圖顯示情況(圖1)。正常情況下,無法查看到對方游戲角色的活動和狀態(tài)。
3.外掛程序的功能檢驗
使用固定保全的外掛服務(wù)端程序配置文件夾“fuckdota”和“home”搭建后臺服務(wù)器。
運(yùn)行外掛客戶端程序 “8.6.exe”,使用在后臺數(shù)據(jù)庫中獲取的賬戶和密碼進(jìn)行登錄。
外掛客戶端程序“8.6.exe”啟動后,重新登錄“11對戰(zhàn)平臺”,再次創(chuàng)建以魔獸爭霸地圖Dota6.77c AI為模版的對戰(zhàn)游戲,進(jìn)入游戲,等待對方游戲角色出現(xiàn)后,查看對方地圖顯示情況(圖2)。此時,在游戲中可清晰查看對方游戲角色的活動和狀態(tài)。
計算上述固定保全的涉案文件的SHA256校驗碼,并將所得校驗碼保存至鑒定工作站上。
【分析說明】
(一)正常游戲客戶端的逆向分析
在鑒定工作站上登錄“11對戰(zhàn)平臺”,進(jìn)入魔獸爭霸3游戲。使用Ollydbg v1.10附加游戲進(jìn)程“War3.exe”,經(jīng)檢驗,游戲進(jìn)程“War3.exe”運(yùn)行時加載“11對戰(zhàn)平臺”的可執(zhí)行模塊“11xp.dll”。該模塊用于保護(hù)游戲進(jìn)程“War3.exe”在運(yùn)行時不被篡改,屬于“11對戰(zhàn)平臺”游戲客戶端的保護(hù)模塊。加載成功后,以此次加載的可執(zhí)行模塊“11xp.dll”的內(nèi)存基址“67B50000”為初始位,分別查看偏移量為“0x100410”、“0x1180e4”、“11890c”、“11a9f8”、“11aa10”、“1180fc”和“118ff8”的位置對應(yīng)的數(shù)值,上述數(shù)值為可執(zhí)行模塊“11xp.dll”中的防篡改校驗值。
(二)外掛程序啟動后游戲客戶端的逆向分析
在鑒定工作站上重新啟動外掛客戶端程序 “8.6.exe”,并使用其后臺賬號和密碼進(jìn)行登錄。登錄成功后,登錄“11對戰(zhàn)平臺”,進(jìn)入魔獸爭霸3游戲。使用Ollydbg v1.10附加游戲進(jìn)程“War3.exe”,啟動外掛客戶端程序“8.6.exe”后,游戲進(jìn)程“War3.exe”運(yùn)行時加載了的名為“frdfd.dll”的可執(zhí)行模塊。
同時,對游戲進(jìn)程“War3.exe”加載的可執(zhí)行模塊“11xp.dll”進(jìn)行分析,同樣以可執(zhí)行模塊“11xp.dll”的內(nèi)存基址“696F0000”為初始位,分別查看偏移量為“0x100410”、“0x1180e4”、“11890c”、“11a9f8”、“11aa10”、“1180fc”和“118ff8”的位置對應(yīng)的數(shù)值。
綜上所述,外掛客戶端程序“8.6.exe”啟動前后,可執(zhí)行模塊“11xp.dll”中的部分校驗值數(shù)據(jù)發(fā)生改變(表2)。
如表2所示,外掛客戶端程序“8.6.exe”運(yùn)行后,“11對戰(zhàn)平臺”下的可執(zhí)行模塊“11xp.dll”中部分校驗數(shù)值發(fā)生改變,其中第1、2、5和6項的數(shù)值被篡改,第3、4和7項的可執(zhí)行模塊“11xp.dll”內(nèi)存空間的數(shù)據(jù)被可執(zhí)行模塊“frdfd.dll”內(nèi)存空間的數(shù)據(jù)替換。
綜上所述,在本次檢驗中,外掛客戶端程序“8.6.exe”通過調(diào)用其生成的可執(zhí)行模塊“frdfd.dll”,對“11對戰(zhàn)平臺”中用于保護(hù)游戲進(jìn)程的可執(zhí)行模塊“11xp.dll”中部分安全校驗數(shù)值進(jìn)行了篡改和替換,即通過修改“11對戰(zhàn)平臺”進(jìn)程的邏輯數(shù)據(jù),實現(xiàn)修改“11對戰(zhàn)平臺”中游戲地圖顯示效果的目的。
【鑒定意見】
本次鑒定在送檢檢材中發(fā)現(xiàn)的涉案源代碼中共有21個源代碼函數(shù)(共計有效代碼314行)與樣本光盤中的核心源代碼中的源代碼函數(shù)完全一致。
本次鑒定對外掛客戶端程序 “8.6.exe”的功能進(jìn)行了分析,發(fā)現(xiàn)其實現(xiàn)了“11對戰(zhàn)平臺”中游戲地圖全開的功能,而這是“11對戰(zhàn)平臺”本身不提供給游戲玩家的功能。
本次鑒定對外掛客戶端程序“8.6.exe”進(jìn)行了逆向分析,發(fā)現(xiàn)其通過調(diào)用可執(zhí)行模塊“frdfd.dll”,對“11對戰(zhàn)平臺”中用于保護(hù)游戲進(jìn)程的可執(zhí)行模塊“11xp.dll”中的部分校驗數(shù)值進(jìn)行了篡改和替換。
綜上所述,外掛客戶端程序“8.6.exe”修改了“11對戰(zhàn)平臺”中的邏輯數(shù)據(jù),對“11對戰(zhàn)平臺”的正常操作流程和正常運(yùn)行方式造成了破壞,屬于破壞性程序。