淺析歡樂時光(HAPPY TIME)病毒 (轉)

gugu99發表於2008-04-04
淺析歡樂時光(HAPPY TIME)病毒 (轉)[@more@]

淺析歡樂時光(HAPPY TIME)


徐廣圻 01-5-11 下午 02:19:25


本人是個上網新手,今年四月份左右才開始上網。新手嘛,可不像高手那樣,懂得如何使自己的免受病毒之害,只使了個,以為如此一來就萬事大吉了。剛開始上網時,簡直在五光十色的各網站及資訊的海洋中迷了路,東走西瞧,看見感興趣的網頁就儲存,遇見有趣的軟體即,想必列位初次上網時也如此吧。 沉醉於網際網路帶來的樂趣之中沒幾天,我的愛機就出現了異常:每隔十幾秒鐘,滑鼠指標旁就出現一個沙漏圖示一閃,似乎電腦在什麼,可我關閉了一切程式,只剩了個桌面也無濟於事,在此期間,電腦速度大幅下降,執行任何軟體都是老半天才出畫面,且每隔十幾秒鐘就停頓一下,無奈只得重啟,但一選擇了重新啟動,電腦就沒了反應,就在我以為當機時,跳出來個錯誤資訊框說是嚴重不足?!天哪,我的愛機可是有256M記憶體呢!按CTRL+ALT+DEL鍵,出現關閉程式對話方塊,我在其中發現了幾百個不明任務,都標著WSCRIPT。。。字樣。看來電腦患上了瑞星也查不出的新病毒了。 此後的幾天是段痛苦的經歷,我讓愛機拖著重病的身子在網上下載了一些,還好有一個金山毒霸的試用版,開啟它的啟發式查毒選項可以查出一未知病毒,但只能警告而不能殺除。偶然有一次,我開啟一個儲存在中的網頁時也收到了警告,而其它網頁檔案則不警告,機會來了!我立即將其字尾名由HTM改為TXT,用記事本開啟,在標記後露出了此病毒的廬山真面目。 病毒是用語言編寫的,其第一行寫著 I am sorry, happy time.(意為對不起您了,歡樂時光。真是氣死人不償命!惡作劇的混蛋口說"Sorry"祝人"歡樂"?!) 本人不懂VBSCRIPT語言,但曾學過,再翻了一些VBSCRIPT的資料,一番臨時抱佛腳後,開始解讀病毒源程式。由於缺乏相應資料加之本人水平有限,不能讀懂每一行程式碼,只能看出個大概,但我越分析越心驚,這是個僅瀏覽網站頁面就會感染的高傳染性,高破壞性的病毒! 先看一下此病毒的發病機制: 首次染毒時,會將WINDOWS 資料夾裡的所有網頁檔案染上病毒,並找出這些檔案中的任何E地址向它們傳送病毒,對方只要一開啟即會染毒; 以後每隔十秒鐘發作一次,但發作完後仍駐留在記憶體,十秒一次的發作,再大的記憶體也會給蠶食殆盡; 每次發作時,在普通的日子裡,會找出一個字尾名為HTML、HTM、VBS、的檔案傳染(別小看了每次一個檔案,它可是十秒一次的發作喲!),並查出此檔案中所有的地址傳送病毒郵件,在月份加天數為13的"特殊"日子裡(1月12日、2月11日......12月1日),它每次發作會找出一個字尾名為EXE、DLL的檔案(通常為重要的檔案)來刪除,使你的電腦徹底癱瘓; 該病毒在WINDOWS登錄檔內儲存已發作的次數,每次發作時它檢查已發作次數,如其是366的倍數,則向外亂髮病毒郵件:如系統時間的秒數是偶數,則傳送系統郵件,如是奇數,則到的默任目錄裡取得EMAIL地址傳送病毒郵件。 順便說一句,由於此病毒發作頻繁且亂髮EMAIL,到月底結帳時,你可能要多付一大筆冤枉錢。 現在我們來看看這可惡的病毒的結構,看它是如何使得我們在瀏覽網頁時即染毒的。 前面提到過,該病毒是用VBSCRIPT語言寫成的,翻了一些資料,才知道VBSCRIPT是一種能增強網頁功能的指令碼語言,它嵌入HTML檔案中,你瀏覽網頁時,它也與HTML檔案一起調入記憶體,由解釋並執行。所以在你看到網頁時,它其中所含的VBSCRIPT程式碼(如果有的話)已被執行,這樣就很容易被心懷叵測者用來編制破壞程式。VBSCRIPT的設計者們也考慮到了這點,因此VBSCRIPT被設計成VISUAL BASIC的簡化版,捨棄了一些"危險的"語句命令,所以VBSCRIPT是"的",可用於網頁的編制。確實光是VBSCRIPT的話確實無甚威脅,可是VBSCRIPT提供了建立並使用()功能,而WINDOWS提供大量物件給各種語言使用,利用這些物件你幾乎能幹任何事!比如說本病毒的許多破壞工作就是由建立並使用WSCRIPT(WINDOWS SCRIPT即WINDOWS指令碼語言)物件來完成的,所以可以這樣說:VBSCRIPT是不安全的,是危險的!歡樂時光病毒就是個最有力的見證! 言歸正傳,我們還是來看看病毒的結構。

初始化部分

初始化(建立SCRIPTLET.TYPELIB物件等)

  ↓ 

當前是HTML狀態?

是 ↙ ↘ 否

━━━━━━ ━━━━━━━

↓  ↓

在WINDOWS目錄下有HELP.VBS檔案嗎?  執行主發作程式 

  ↓   有 ↙ ↘ 無   ━━━  ━━━━━━━   ↓ (3)  ↓ (1) 設定為每10秒鐘一次  將本檔案中的病毒程式碼以HTML格式存為 HELP.VBS  WINDOWS目錄下的HELP.HTA檔案,並呼叫HELP.HTA。 結束  結束

主發作程式

 ↓

建立含有HTML,VBS,HTM,ASP的 字尾名錶

當前是HELP.VBS執行狀態?

(4) 是 ↙ ↘ 否 (2)

━━━━━━ ━━━━━━━

↓  ↓

  如月+天為13則將字尾名錶改為  用本病毒程式碼在WINDOWS目錄下創   只包含EXE,DLL;  建HELP.VBS檔案,及UNTITLE.HTM   檔案; 將登錄檔中的HKEY_CURRENT_USER SoftwareHelpCount病毒發作計數加1;  修改HKEY_CURRENT_USERntities

  標識號Software

  look Express5.0Mail下的鍵值: SoftwareHelpFile_Name待感染檔名  Message Send HTML改為1 取出,並按字尾名錶找出下一待感染檔案,  Compose Use Stationery改為1 存於此處;  Stationery Name改為指向 untitle.htm 查出其中的EMAIL地址傳送病毒郵件;  在WINDOWSWEB目錄下查詢HTML,VBS,

  HTM,ASP,HTT檔案,在它們末尾如待 

  感染檔名是EXE,DLL檔案則刪除!

  末尾新增本病毒程式碼,並查出其中的

  EMAIL地址傳送病毒郵件

用本病毒程式碼在WINDOWS目錄下建立一個HTM檔案並將其檔名寫入HKEY_CURRENT_USERSoftwareHelpWallpaper及HKEY_CURRENT_USERControl PaneldesktopwallPaper 以上流程基本解釋了其發病機制,現在我對流程上()內的數字作一下說明: 剛開始接觸本病毒時,我們一定是處於瀏覽含病毒的網頁狀態,也即是流程上的HTML狀態,且此時硬碟上尚未有HELP.VBS病毒檔案,所以病毒執行(1)分支,建立HELP.HTA病毒檔案,並呼叫它。然後在HELP.HTA病毒檔案執行時,此時它已不處於HTML狀態,所以執行主發作程式,在主發作程式中,由於此時不是HELP.VBS執行狀態所以執行(2)分支並建立HELP.VBS病毒檔案,以後再遇見本病毒時,由於已有了HELP.VBS病毒檔案,就執行(3)分支,設定為每10秒鐘執行一次HELP.VBS,而HELP.VBS會執行主發作程式的(4)分支,完成一系列破壞任務。 聽說現在已有了能殺此病毒的軟體,具體我也不清楚。如你像我一樣已不幸染毒,在得到防毒軟體前,首先應注意在"特殊"日子裡不要開機,以免愛機成為當機;另外從流程可看出,本病毒只感染字尾名為HTM,HTML,VBS,ASP(以及WINDOWSWEB下的HTT檔案),所以你開機只至WINDOWS桌面出現都是安全的,把桌面的牆紙設為無,再次重新啟動,注意不要使用我的電腦或是WINDOWS,因為它們每次執行都要裝入許多檔案,極有可能啟用病毒,你要處理文件最好進入DOS狀態,在DOS下操作;注意不要看任何幫助資訊,因為很多幫助檔案都是HTML格式的。如你是好手,你可編個程式,檢查硬碟中所有受感染字尾名為HTM,HTML,VBS,ASP的檔案,並清除病毒,如你不會程式設計,又無防毒軟體,你只能用查詢功能查出所有字尾名為HTM,HTML,VBS,ASP的檔案,然後一一手工操作:重新命名為TXT檔案,開啟檢查,如檔案尾有病毒則刪除,儲存後再改回原來的檔名,然後是下一個....... 但我們還要上網,還要瀏覽,即使我們有了能殺歡樂時光病毒的軟體,誰能保證哪個傢伙不會再寫出諸如此類的病毒使我們受害?看來只有等出個能禁止VBSCRIPT,script,ACTIVE X........的瀏覽器來了。就我個人而言,情願不要任何特效,只要安全。 最後,奉上歡樂時光病毒的源程式,供有興趣者參考,如哪位高人能參透此程式,也請發表解析結果,讓我們對次類病毒有更深認識。 我對源程式作了必要的縮排處理,以方便閱讀。 歡樂時光病毒的源程式:





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1001897/,如需轉載,請註明出處,否則將追究法律責任。

相關文章