網名館

對最新QQ醫生 1.4版防毒方式的探討

QQ剛出了2007正式版的時候馬上就下了,QQ醫生功能上也做了改進,在後臺監視執行,今天上網的時候突然QQ醫生彈了出來,呵呵,報告了木馬。
汗!QQ2007正式版帶的QQ醫生功能還真的很強大,無聊之餘在學校要度過十一就對對這個小東西的防毒機制進行研究一下吧。正好我的盤裡有個黑洞2005,一個遠端控制軟體,以前幫朋友檢視電腦時候用的它,主要是螢幕傳輸好,現在也被列入木馬行列。本地執行一個看看QQ醫生是否殺呢,本地安裝了一下運行了一下如下圖,殺了出來,呵呵不錯,不用去找病毒樣本測試了,就拿它來測試了。

對最新QQ醫生 1.4版防毒方式的探討

QQ醫生到底是怎麼防毒的呢?主動防禦型?可是我安裝的時候根本沒反映,我把黑洞服務端的殼很簡單用Upx ShellEx就給脫掉了,把裡面的所有登錄檔啟動,服務啟動之類的字串全部用0填充了,如下圖


紅色的部分原來是寫登錄檔的地方全部00填充了,其他能找到的部分也填充了,重新生成並且執行依然被檢測了出來,這個小東西不可能用主動防禦那中技術,真懷疑。猜測是記憶體查殺特徵。
程式執行在記憶體裡的是相當於無殼裝載的,用PEID查了下殼是UPX加的,很簡單用工具就脫了,用OD載入無殼的被查了出來,載入個帶殼的餓就不殺,瑞星的記憶體查殺有無殼OD載入都殺的。還是有點疑惑,既然無殼的被查出是毒,那就一個特徵定位工具定位一下,如果後成功的定位出了特徵碼,那就說明QQ醫生的確是記憶體查殺。
用到的工具er(記憶體輔助定位工具)和MYCLL,設定的時候注意,最好少分成幾塊,我先生成了50個,少這樣容易檢視,因為很大一部分要手工來完成。還要”在“帶字尾”前邊打上鉤,要麼不能載入到記憶體。這個工具的使用方法網路上有許多。是小黑們木馬免殺的利器。簡單介紹下MYCLL和ER,MYCLL是把檔案分成N個部分,然後N個部分裡面分別用00填充,之後就生成了N個檔案,其實是一種排除方法,而ER負責把帶字尾的檔案載入到記憶體,這樣好在記憶體中檢測。MYCLL介面如下,


在MYCLL目錄下的OUTPUT目錄裡生成了50個檔案
之後用ER載入記憶體, 如下圖


之後QQ醫生掃描,如圖5


之後在OUTPUT資料夾下,把查出來的都刪除掉,點二次處理,繼續定位重複上面的操作,最後成功的定位出一出特徵
最後定位出如下的結果:
特徵碼 實體地址/物理長度 如下:
[特徵] 00061BAE_00000002


特徵碼分佈示意圖:
[--------------------------------------------------]
[--------------------------------------------------]
[--------------------------------------------------]
[-------------------M------------------------------]
[--------------------------------------------------]
用接下來OC把檔案偏移轉換成記憶體地址,如下圖(圖)


OD載入那個檔案,跳到004627AE處,把它用NOP替換掉,儲存,載入,QQ醫生查不出來了,由此得出了結論,QQ醫生是採用記憶體查殺特徵的方式,也是取特徵碼防毒。

最後分析了下,為什麼QQ醫生查不出OD載入帶殼的,因為它和瑞星不一樣瑞星有脫殼引擎,QQ醫生沒有,所以只能殺OD載入無殼的了。

標籤:qq 防毒 醫生