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

