QQ剛出了2007正式版的時(shí)候馬上就下了,QQ醫(yī)生功能上也做了改進(jìn),在后臺(tái)監(jiān)視運(yùn)行,今天上網(wǎng)的時(shí)候突然QQ醫(yī)生彈了出來(lái),呵呵,報(bào)告了木馬。
汗!QQ2007正式版帶的QQ醫(yī)生功能還真的很強(qiáng)大,無(wú)聊之余在學(xué)校要度過(guò)十一就對(duì)對(duì)這個(gè)小東西的
殺毒機(jī)制進(jìn)行研究一下吧。正好我的盤里有個(gè)黑洞2005,一個(gè)遠(yuǎn)程控制軟件,以前幫朋友查看電腦時(shí)候用的它,主要是屏幕傳輸好,現(xiàn)在也被列入木馬行列。本地運(yùn)行一個(gè)看看QQ醫(yī)生是否殺呢,本地安裝了一下運(yùn)行了一下如下圖,殺了出來(lái),呵呵不錯(cuò),不用去找病毒樣本測(cè)試了,就拿它來(lái)測(cè)試了。
QQ醫(yī)生到底是怎么殺毒的呢?主動(dòng)
防御型?可是我安裝的時(shí)候根本沒(méi)反映,我把黑洞服務(wù)端的殼很簡(jiǎn)單用Upx ShellEx就給脫掉了,把里面的所有注冊(cè)表啟動(dòng),服務(wù)啟動(dòng)之類的字符串全部用0填充了,如下圖
紅色的部分原來(lái)是寫注冊(cè)表的地方全部00填充了,其他能找到的部分也填充了,重新生成并且運(yùn)行依然被檢測(cè)了出來(lái),這個(gè)小東西不可能用主動(dòng)防御那中技術(shù),真懷疑。猜測(cè)是內(nèi)存查殺特征。
程序運(yùn)行在內(nèi)存里的是相當(dāng)于無(wú)殼裝載的,用PEID查了下殼是UPX加的,很
簡(jiǎn)單用工具就脫了,用OD載入無(wú)殼的被查了出來(lái),載入個(gè)帶殼的餓就不殺,瑞星的內(nèi)存查殺有無(wú)殼OD載入都?xì)⒌摹_是有點(diǎn)疑惑,既然無(wú)殼的被查出是毒,那就一個(gè)特征
定位工具定位一下,如果后成功的定位出了特征碼,那就說(shuō)明QQ醫(yī)生的確是內(nèi)存查殺。
用到的工具TK.Loader(內(nèi)存輔助定位工具)和MYCLL,設(shè)置的時(shí)候注意,最好少分成幾塊,我先生成了50個(gè),少這樣容易查看,因?yàn)楹艽笠徊糠忠止?lái)完成。還要”在“帶后綴”前邊打上鉤,要么不能載入到內(nèi)存。這個(gè)工具的使用方法網(wǎng)絡(luò)上有許多。是小黑們木馬免殺的利器。簡(jiǎn)單介紹下MYCLL和TK.LOADER,MYCLL是把文件分成N個(gè)部分,然后N個(gè)部分里面分別用00填充,之后就生成了N個(gè)文件,其實(shí)是一種排除方法,而TK.LOADER負(fù)責(zé)把帶后綴的文件載入到內(nèi)存,這樣好在內(nèi)存中檢測(cè)。MYCLL界面如下,
在MYCLL目錄下的OUTPUT目錄里生成了50個(gè)文件
之后用TK.LOADER載入內(nèi)存, 如下圖
之后QQ醫(yī)生掃描,如圖5
之后在OUTPUT文件夾下,把查出來(lái)的都刪除掉,點(diǎn)二次處理,繼續(xù)定位重復(fù)上面的操作,最后成功的定位出一出特征
最后定位出如下的結(jié)果:
特征碼 物理地址/物理長(zhǎng)度 如下:
[特征] 00061BAE_00000002
特征碼分布示意圖:
[--------------------------------------------------]
[--------------------------------------------------]
[--------------------------------------------------]
[-------------------M------------------------------]
[--------------------------------------------------]
用接下來(lái)OC把文件偏移轉(zhuǎn)換成內(nèi)存地址,如下圖(圖)
OD載入那個(gè)文件,跳到004627AE處,把它用NOP替換掉,保存,載入,QQ醫(yī)生查不出來(lái)了,由此得出了結(jié)論,QQ醫(yī)生是采用內(nèi)存查殺特征的方式,也是取特征碼殺毒。
最后分析了下,為什么QQ醫(yī)生查不出OD載入帶殼的,因?yàn)樗腿鹦遣灰粯尤鹦怯忻摎ひ妫琎Q醫(yī)生沒(méi)有,所以只能殺OD載入無(wú)殼的了。