以下為扣扣保鏢QGuard.dll 進(jìn)行WINDOWS API 攔截及API攔截功能實(shí)現(xiàn)的相關(guān)代碼
扣扣保鏢在QQ IM進(jìn)程中攔截相關(guān)系統(tǒng)API后將實(shí)時(shí)監(jiān)控QQIM啟動(dòng)進(jìn)程動(dòng)作(用戶不能使用任何功能設(shè)置項(xiàng)進(jìn)行隱藏功能關(guān)閉操作)
隱藏功能一:激活后自動(dòng)屏蔽QQ軟件升級(jí)
該隱藏功能影響域:
該隱藏功能激活后,QQ的安全組件、QQ本身等軟件都不能正常更新升級(jí)(用戶毫不知情,也不會(huì)得到任何錯(cuò)誤提示),QQ軟件將變成一個(gè)“死”軟件。
以下為扣扣保鏢QGuard.dll在攔截ShellExecuteExW及CreateProcessInternalW后進(jìn)行的QQ IM啟動(dòng)升級(jí)進(jìn)程(屏蔽QQ升級(jí))識(shí)別及屏蔽升級(jí)部分代碼。
如果發(fā)現(xiàn)啟動(dòng)的是auclt.exe、SelfUpdate.exe和QQSafeud.exe并在Config.ini文件中DisableUpdate=1則將繞開(kāi)真實(shí)系統(tǒng)調(diào)用,使QQ升級(jí)進(jìn)程啟動(dòng)失效。這些操作將對(duì)用戶沒(méi)有任何提示!
隱藏功能二:激活后根據(jù)指定進(jìn)程列表進(jìn)行QQ啟動(dòng)程序的攔截
該隱藏功能影響域:
該隱藏功能激活后,將根據(jù)360投送的Config.ini里指定的進(jìn)程名進(jìn)行QQ啟動(dòng)程序過(guò)濾。這將讓360可以非常方便進(jìn)行可控的QQ啟動(dòng)程序攔截。
扣扣保鏢還會(huì)嘗試讀取位于安裝目錄下360360safe360QGuard下的Config.ini中Main主鍵下的Com字段(參照上文所述Config.ini結(jié)構(gòu))。由于Config.ini在默認(rèn)安裝情況下不存在,在此無(wú)法得知具體需要屏蔽的進(jìn)程,但是通過(guò)分析代碼可以得知此字段為一個(gè)由“;”分割的一個(gè)進(jìn)程列表??劭郾gS將攔截此列表中所有文件名相同的進(jìn)程的啟動(dòng)。
以下為QQ啟動(dòng)程序屏蔽列表部分代碼
以下為:扣扣保鏢QGuard.dll屏蔽列表讀取代碼
除此之外還會(huì)在%AppData%的配置文件UserConfig.ini中讀取component字段,其中每一項(xiàng)鏡像名其后的0和1為進(jìn)程屏蔽開(kāi)關(guān)。
%AppData%360QGuardUserConfig.ini內(nèi)容如下:
[component]
<要阻止的文件名及擴(kuò)展名>=0|1
隱藏功能三:激活后對(duì)QQ軟件的瀏覽器進(jìn)行劫持(替換成360瀏覽器)
該隱藏功能影響域:
該功能激活后,QQ 進(jìn)程啟動(dòng)的瀏覽器進(jìn)程(帶參數(shù)瀏覽URL方式)將被替換成啟動(dòng)360SE來(lái)進(jìn)行瀏覽(裝著360瀏覽器的情況下)。由于該功能是攔截 API實(shí)現(xiàn),所以無(wú)論用戶設(shè)置的默認(rèn)瀏覽是什么,也不論騰訊QQ當(dāng)前選用哪個(gè)瀏覽器都將被劫持成360SE(附:該隱藏功能不單可以劫持TTraveler.exe,QQBrowser.exe,還能根據(jù)升級(jí)的配置隨時(shí)指定劫持的瀏覽器進(jìn)程名。)
這樣QQ軟件用戶聊天時(shí)帶的所有URL鏈接的瀏覽量將都被360SE獲取。
扣扣保鏢QGuard.dll攔截程序,發(fā)現(xiàn)QQ IM啟動(dòng)的程序?yàn)轵v訊的瀏覽器(TTraveler.exe和QQBrowser.exe),且Config.ini文件內(nèi)容中有DisableBrowser=1,則將QQ IM啟動(dòng)的瀏覽器自動(dòng)替換為360的瀏覽器。
除此之外,通過(guò)最后一行Call InitComponent讀取位于%AppData%的配置文件UserConfig.ini中的component項(xiàng)是否有指定名稱的鏡像名,如果發(fā)現(xiàn)也將替換為360的瀏覽器。
隱藏功能四:激活后欺騙用戶對(duì)QQ軟件進(jìn)行備份(并可做恢復(fù)操作)
該隱藏功能影響域:
該隱藏功能激活后,將根據(jù)360投送的Config.ini里配置的參數(shù)引導(dǎo)用戶備份QQ軟件到360指定目錄,并可通過(guò)扣扣保鏢進(jìn)行恢復(fù)。
在config.ini里填入以上內(nèi)容,在啟動(dòng)QQ時(shí)會(huì)出現(xiàn)以下對(duì)話框。
在這里可以禁用QQ的自動(dòng)更新功能。備份按鈕會(huì)將QQ的全部數(shù)據(jù)備份到360的配置目錄。如下圖:
相關(guān)代碼如下:
分析總結(jié):
由于360扣扣保鏢的這4個(gè)隱藏功能針對(duì)性極強(qiáng)(針對(duì)QQ軟件)并具有:
1、在不被用戶知情的情況下進(jìn)行破壞其它軟件正常運(yùn)行的流氓軟件特性。
2、繞開(kāi)用戶控制隱蔽觸發(fā)的后門功能特性。
3、注入其它進(jìn)程,修改其正常功能運(yùn)行方式的外掛特性。
而這些技術(shù)手段通常只在木馬、后門、病毒這類惡意軟件上見(jiàn)到,在一款“以安全為名”的軟件上出現(xiàn)并針對(duì)正常軟件使用是極為罕見(jiàn)的。這也可以很好地理解為什么360讓它如此短命,騰訊為什么如此憤怒。
附:
從百度百科中查出一些公眾認(rèn)知的定義:
外掛:外掛一般是指在電腦運(yùn)行中,一個(gè)程序通過(guò)某種事件觸發(fā)而得以掛接到另外一個(gè)程序的空間里(常用的觸發(fā)事件有鍵盤觸發(fā),鼠標(biāo)觸發(fā),消息觸發(fā)等),掛接的目的通常是想改變被掛接程序的運(yùn)行方式。
后門功能:指繞過(guò)軟件的安全性控制而從比較隱秘的通道獲取對(duì)程序或系統(tǒng)訪問(wèn)權(quán)的方法。
流氓軟件新發(fā)展:新的流氓軟件可能并沒(méi)有捆綁插件,新的流氓行為包括故意妨礙其他同類軟件的使用,新的流氓行為包括把自己的流氓行為說(shuō)成是BUG或者好功能,以此來(lái)掩蓋自己骯臟的目的,新的流氓都精通心理學(xué),把用戶的心理研究的透透徹徹,并利用這種心理來(lái)做利于自己的事情。