一、BMW病毒BIOS部分
增加了ISA模塊BIOS部分,名為HOOK.ROM,作用主要是檢測MBR部分是否被恢復。如果發(fā)現(xiàn)MBR部分已被修復,就將BIOS內(nèi)的病毒代碼約 14個扇區(qū)寫入MBR中,導致用戶反復格式化、高格低格,或重新分區(qū)都無效。
二、BMW病毒MBR部分
MBR部分病毒代碼執(zhí)行后,會從第2個扇區(qū)開始讀6個扇區(qū)的病毒代碼到0X7C00處,然后跳至該處執(zhí)行,然后讀取第7個扇區(qū)中的備份 MBR到內(nèi)存中,驗證扇區(qū)的有效性;
通過驗證后,讀取分區(qū)表中的引導扇區(qū)所在的扇區(qū)到 0X7C00處,驗證引導分區(qū)的有效性;
通過驗證后,判斷引導分區(qū)的類型,目前該病毒支持NTFS和 FAT32,根據(jù)不同的分區(qū)類型進行不同的處理,再經(jīng)過解析文件系統(tǒng)找到文件所在扇區(qū),找到相應的Windows系統(tǒng)文件讀取PE信息判斷其是否被感染過。(XP/2003系統(tǒng)為Winlogon.exe,Win7/Vista系統(tǒng)為Wininit.exe)
如果Windows系統(tǒng)文件已被感染,則在屏幕上顯示"Find it OK!",然后調入原始MBR,跳到原始MBR處執(zhí)行;如果Windows系統(tǒng)文件沒有被感染,則進行PE感染寫扇區(qū),之后在屏幕上顯示"Find it OK!",然后調入原始MBR,跳到原始MBR處執(zhí)行。
三、BMW病毒W(wǎng)indows部分(Winlogon和Wininit文件執(zhí)行感染)
以Winlogon.exe為例進行說明:
由于病毒修改了該文件入口點,當文件執(zhí)行時首先執(zhí)行加密過的病毒代碼,運行時動態(tài)解碼。
病毒代碼解密后加載指定文件,創(chuàng)建病毒調用CreateThread創(chuàng)建線程,同時跳回原始入口點執(zhí)行。
在病毒線程里先Sleep10秒,然后調用URLDownloadToFileA從黑客服務器下載一個Downloader到本地,驗證文件下載成功后,調用WinExec執(zhí)行,從而下載運行多種惡意程序;該病毒還會下載驅動,命名為c:my.sys,由之前的病毒代碼通過一系列服務函數(shù)來創(chuàng)建加載驅動,完成后該病毒線程進入無限Sleep狀態(tài)。