国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

vbs腳本 加密 幾個小細節小結下

2020-06-26 18:11:01
字體:
來源:轉載
供稿:網友
加密的vbs腳本拖到這個腳本上就行了。網上有位朋友問我這個問題,我由于今天才上email看了下文件,發現下面的問題,說實話對于他要問的我和你清楚,我不太會寫呢,不是出于技術問題,是出于已經沒了這份愛好。出于對朋友學習的理解,我給解決了幾個問題,下面總結下。并給出正確的代碼。
 

 

復制代碼代碼如下:

dxy:  
    你好!  
    我學vbs也有一小段時間了,最近看到一本書上講vbs腳本的加密,就自己試了試,可是有一點問題,低級的語法錯誤我都自己修正了,可腳本運行后不起作用.所以想請教你一下.腳本的原理是這樣的:它把代碼轉換成16進制,然后再寫個解密代碼,通過這個解密來執行加密的代碼,將字符串成16進制的代碼如下:  
Function str2hex (Byval strHex)  
For i=1 to Len(strHex)  
sHex = sHex & Hex(Asc(mid(strHex,i,1)))  
 next  
 str2Hex = sHex  
end Function  

解密的代碼如下:  

Function hextostr(data)  
Hextostr = "Execute"""""  
C= "&Chr(&H"  
N= ")"  
Do while Len(data)>1  
if IsNumeric (Left(data,1)) then  
Hextostr=Hextostr&c&Left(data,2)&N  
data=mid(data,3)  
else  
Hextostr=HextoStr&C&Left(data,4)&N  
data=mid(data,5)  
end if  
loop  
end Function  

解密代碼好象有點問題,請幫忙指正,我實在找不出  

整個成品就是:  

on error resume next  
set arg=wscript.arguement '聲明外部參數  
if arg.count=0 Then wscript.quit '若無參數則退出腳本  
set fso=creatobject("Scripting.Filesystem Object") '聲明fso組件  
when fso.opentextfile(arg(0),1,flase)  
data = readall:.close'讀取文本內容  
if err.number<>0 then wscript.quit '如果發生錯誤,則退出  
with fso.opentextfile(arg(0)&"*.vbs",2,true) '將轉換好的寫到一個新的vbs中  
if err.number<>0 then wscript.quit '如果發生錯誤,則退出  
.writeline "Execute(Hextostr("""&str2hex(data)&"""))"  '執行解密并執行解密后的代碼  
.writeline "Function hextostr(data)"  
.writeline "Hextostr=""Execute"""""""""""  
.writeline "C=""&CHR(&H"""  
.writeline "N= )"  
.writeline "Do while Len(data)>1"  
.writeline "if IsNumeric (Left(data,1)) then"  
.writeline "Hextostr=Hextostr&c&Left(data,2)&N"  
.writeline "data = (data,3)"  
.writeline "else"  
.writeline "Hextostr=Hex to str&c&Left(data,4)&N"  
.writeline "data=mid(data,5)"  
.writeline "end if"  
.writeline "loop"  
.writeline "end function"  
'把解密函數寫進去  
.close '關閉文本  
set fso=Nothing'注銷fso組件  
end with  
msgbox "OK"  
'以下是加密函數  
Function str2hex (Byval strHex)  
For i=1 to Len(strHex)  
sHex = sHex & Hex(Asc(mid(strHex,i,1)))  
 next  
 str2Hex = sHex  
end function  
'全部代碼就到這了,好長~  

書上說,把要加密的vbs腳本拖到這個腳本上就行了,不過我沒有成功,不知道那里有問題,請幫幫我,謝謝~ 

上面的代碼注意的幾個情況:
1、set arg=wscript.arguements
后門有個s
2、set fso=creatobject("Scripting.Filesystem Object") '聲明fso組件
應該是filesystemboject
3、.writeline "N= )"
對于需要輸出N=")"用vbs輸入"(雙引號)的方法就是用兩個""
.writeline "N="")"""
4、.writeline "data = (data,3)"這里少個mid
基本上就這些了
do.vbs保存為do.vbs ,將要加密的js文件拖到這個文件上就可以
復制代碼代碼如下:

'on error resume next 
set arg=wscript.arguments '聲明外部參數 
if arg.count=0 Then wscript.quit '若無參數則退出腳本 
set fso=createobject("Scripting.FilesystemObject") '聲明fso組件 
filename=wscript.arguments(0) 
set readline=fso.opentextfile(filename,1,flase) 
data=readline.readall: 
readline.close '讀取文本內容 
if err.number<>0 then wscript.quit '如果發生錯誤,則退出 
with fso.opentextfile(filename&"_out.vbs",2,true) '將轉換好的寫到一個新的vbs中 
if err.number<>0 then wscript.quit '如果發生錯誤,則退出 
.writeline "Execute(Hextostr("""&str2hex(data)&"""))"  '執行解密并執行解密后的代碼 
.writeline "Function hextostr(data)" 
.writeline "Hextostr=""Execute""""""""""" 
.writeline "C=""&CHR(&H""" 
.writeline "N= "")""" 
.writeline "Do while Len(data)>1" 
.writeline "if IsNumeric (Left(data,1)) then" 
.writeline "Hextostr=Hextostr&c&Left(data,2)&N" 
.writeline "data = mid(data,3)" 
.writeline "else" 
.writeline "Hextostr=Hextostr&c&Left(data,4)&N" 
.writeline "data=mid(data,5)" 
.writeline "end if" 
.writeline "loop" 
.writeline "end function" 
'把解密函數寫進去 
.close '關閉文本 
end with 
set fso=Nothing'注銷fso組件 
msgbox "OK" 
'以下是加密函數 
Function str2hex (Byval strHex) 
For i=1 to Len(strHex) 
sHex = sHex & Hex(Asc(mid(strHex,i,1))) 
 next 
 str2Hex = sHex 
end function

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郑州市| 永川市| 金乡县| 商都县| 临汾市| 阿尔山市| 集贤县| 北海市| 华池县| 长治县| 佛冈县| 新宾| 扎兰屯市| 永康市| 鸡西市| 塔城市| 措美县| 彭山县| 寿阳县| 云龙县| 凌源市| 定边县| 昌平区| 亳州市| 揭西县| 若尔盖县| 常州市| 孟州市| 麻江县| 准格尔旗| 岳池县| 吉林市| 图们市| 吴堡县| 凌云县| 上高县| 米林县| 灵武市| 神池县| 万全县| 贵南县|