当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > vbs脚本 加密 几个小细节小结下

VBScript
adodb.stream读文件到数组的代码
利用sql语句复制一条或多条记录
百度空间备份脚本baidublogbak.vbs代码分析
vbs版sql查询分析器lcx作品
最新版利用CDO.Message做的vbs下载者
PDF的VBS小程序代码
算阶乘的vbs小程序
vbs后台运行bat删除自身的代码
VB6 ByVal ByRef函数调用
一段提取用户名和md5的vbs代码
vbs fso跨盘移动文件夹的怪问题
vbs删除文本文件的行的函数
显示运行对话框内保存的命令历史的vbs
emule自动关机脚本
IE中用VBScript不提示直接打印的代码
vbs引用另一个vbs的代码
VBScript 剪贴板抓取URL并在浏览器中打开
奇特的js写法,或许可以用来加密躲杀毒软件什么的
自动写入文件上传到指定服务器SoftwareMeteringCLS.vbs源码
一个查看局域网在线IP的vbs脚本

VBScript 中的 vbs脚本 加密 几个小细节小结下


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 84 ::
收藏到网摘: n/a

复制代码 代码如下:

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