文章作者:xiaolu [BST]
信息來(lái)源:邪惡八進(jìn)制信息安全團(tuán)隊(duì)(www.eviloctal.com)
這個(gè)不是exe2vbs 所有類型的文件都可以轉(zhuǎn)化的 不過(guò)限于string的大小 文件不能太大 我測(cè)試過(guò)3m的文件是可以的
將下面的代碼存為:file2vbs.vbs
復(fù)制代碼 代碼如下:
'Program By xiaolu
'name:file2vbs.vbs
On error resume next
do while 1
fname=InputBox("請(qǐng)輸入要轉(zhuǎn)換的文件名(包括路徑):","輸入文件名","f:\hhh.exe")
if fname="" then Wscript.quit
err.number=0
Set Ado = createObject("adodb.stream")
With Ado
.Type = 1
.open
.loadfromfile fname
ss = .read
End With
if err.number>0 then
if msgbox("文件打開(kāi)錯(cuò)誤!",1,"File2VBS")=2 then Wscript.quit
else
exit do
end if
loop
fname=InputBox("請(qǐng)輸入聲成的vbs名(包括路徑):","輸入文件名","f:\hhh.vbs")
if fname="" then Wscript.quit
Set Fso=createObject("Scripting.FileSystemObject")
Set File=fso.OpenTextFile(fname,2, True)
lens=lenB(ss) mod 500
For j=0 to int(lenB(ss)/500)-1
if j=0 then
File.writeline "ss="""Bin2Str(midb(ss,500*j+1,500))"""_"
else
File.writeline "+"""Bin2Str(midb(ss,500*j+1,500))"""_"
end if
next
if lens>0 then
File.writeline "+"""Bin2Str(rightb(ss,lens))""""
else
File.writeline "+"chr(34)chr(34)
end if
File.writeline ""
File.writeline "Set RS=createObject(""ADODB.Recordset""):L=Len(ss)/2:RS.Fields.Append ""m"",205,L:RS.Open:RS.AddNew:RS(""m"")=ssChrB(0):RS.update:ss=RS(""m"").GetChunk(L)"
File.writeline "Set s=createObject(""ADODB.Stream""):with s:.Mode = 3:.Type = 1:.Open():.Write ss:.SaveToFile wscript.arguments(0),2:end with"
File.close
Set fso=nothing
Ado.close
set Abo=nothing
Function Bin2Str(Re)
For i = 1 To lenB(Re)
bt = AscB(MidB(Re, i, 1))
if bt 16 Then Bin2Str=Bin2Str"0"
Bin2Str=Bin2Str Hex(bt)
Next
End Function
生成文件的辦法
復(fù)制代碼 代碼如下:
cscript file2vbs.vbs c:\test.exe