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

VBScript
Restart.vbs源代码可以重启远程电脑的vbs
远程或本地获取系统信息的脚本RGIS.vbs
远程开启/关闭目标telnet服务的windows脚本RTCS.vbs
可以得到当前系统信息的脚本sysinfo.vbs
RCMD使用说明
远程启动终端服务的windows脚本ROTS.vbs
解锁注册表的vbs脚本
如何使用脚本锁定任务栏?
灵活实用VBS入门教程应用篇
注册表-批处理-VBS之间的功能对应
收集的一些经典的vbs脚本大全
VBS+MSWinsock打造灵巧UDP后门的相关资料
一些经典的主要用户黑客的vbs脚本结合echo的dos下实现
可以定时自动关机的vbs脚本
利用wscript执行文件[包括可执行exe文件]vbs脚本
vbs实用软件自造——Windows脚本应用实例
防止网页脚本病毒执行的方法-from web
打开QQ并且让它自己输入用户名和密码的vbs脚本
多进程的实现投票的vbs脚本
用vbs脚本实现运行DOS批处理不再出现黑屏cmd窗口

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 94 ::
收藏到网摘: 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