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