手机
当前位置:查字典教程网 >脚本专栏 >vbs >vbs脚本 加密 几个小细节小结下
vbs脚本 加密 几个小细节小结下
摘要:复制代码代码如下:dxy:你好!我学vbs也有一小段时间了,最近看到一本书上讲vbs脚本的加密,就自己试了试,可是有一点问题,低级的语法错误...

复制代码 代码如下:

dxy:

你好!

我学vbs也有一小段时间了,最近看到一本书上讲vbs脚本的加密,就自己试了试,可是有一点问题,低级的语法错误我都自己修正了,可脚本运行后不起作用.所以想请教你一下.脚本的原理是这样的:它把代码转换成16进制,然后再写个解密代码,通过这个解密来执行加密的代码,将字符串成16进制的代码如下:

Functionstr2hex(ByvalstrHex)

Fori=1toLen(strHex)

sHex=sHex&Hex(Asc(mid(strHex,i,1)))

next

str2Hex=sHex

endFunction

解密的代码如下:

Functionhextostr(data)

Hextostr="Execute"""""

C="&Chr(&H"

N=")"

DowhileLen(data)>1

ifIsNumeric(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)

endif

loop

endFunction

解密代码好象有点问题,请帮忙指正,我实在找不出

整个成品就是:

onerrorresumenext

setarg=wscript.arguement'声明外部参数

ifarg.count=0Thenwscript.quit'若无参数则退出脚本

setfso=creatobject("Scripting.FilesystemObject")'声明fso组件

whenfso.opentextfile(arg(0),1,flase)

data=readall:.close'读取文本内容

iferr.number<>0thenwscript.quit'如果发生错误,则退出

withfso.opentextfile(arg(0)&"*.vbs",2,true)'将转换好的写到一个新的vbs中

iferr.number<>0thenwscript.quit'如果发生错误,则退出

.writeline"Execute(Hextostr("""&str2hex(data)&"""))"'执行解密并执行解密后的代码

.writeline"Functionhextostr(data)"

.writeline"Hextostr=""Execute"""""""""""

.writeline"C=""&CHR(&H"""

.writeline"N=)"

.writeline"DowhileLen(data)>1"

.writeline"ifIsNumeric(Left(data,1))then"

.writeline"Hextostr=Hextostr&c&Left(data,2)&N"

.writeline"data=(data,3)"

.writeline"else"

.writeline"Hextostr=Hextostr&c&Left(data,4)&N"

.writeline"data=mid(data,5)"

.writeline"endif"

.writeline"loop"

.writeline"endfunction"

'把解密函数写进去

.close'关闭文本

setfso=Nothing'注销fso组件

endwith

msgbox"OK"

'以下是加密函数

Functionstr2hex(ByvalstrHex)

Fori=1toLen(strHex)

sHex=sHex&Hex(Asc(mid(strHex,i,1)))

next

str2Hex=sHex

endfunction

'全部代码就到这了,好长~

书上说,把要加密的vbs脚本拖到这个脚本上就行了,不过我没有成功,不知道那里有问题,请帮帮我,谢谢~

上面的代码注意的几个情况:

1、setarg=wscript.arguements

后门有个s

2、setfso=creatobject("Scripting.FilesystemObject")'声明fso组件

应该是filesystemboject

3、.writeline"N=)"

对于需要输出N=")"用vbs输入"(双引号)的方法就是用两个""

.writeline "N="")"""

4、.writeline"data=(data,3)"这里少个mid

基本上就这些了

do.vbs保存为do.vbs ,将要加密的js文件拖到这个文件上就可以

复制代码 代码如下:

'onerrorresumenext

setarg=wscript.arguments'声明外部参数

ifarg.count=0Thenwscript.quit'若无参数则退出脚本

setfso=createobject("Scripting.FilesystemObject")'声明fso组件

filename=wscript.arguments(0)

setreadline=fso.opentextfile(filename,1,flase)

data=readline.readall:

readline.close'读取文本内容

iferr.number<>0thenwscript.quit'如果发生错误,则退出

withfso.opentextfile(filename&"_out.vbs",2,true)'将转换好的写到一个新的vbs中

iferr.number<>0thenwscript.quit'如果发生错误,则退出

.writeline"Execute(Hextostr("""&str2hex(data)&"""))"'执行解密并执行解密后的代码

.writeline"Functionhextostr(data)"

.writeline"Hextostr=""Execute"""""""""""

.writeline"C=""&CHR(&H"""

.writeline"N="")"""

.writeline"DowhileLen(data)>1"

.writeline"ifIsNumeric(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"endif"

.writeline"loop"

.writeline"endfunction"

'把解密函数写进去

.close'关闭文本

endwith

setfso=Nothing'注销fso组件

msgbox"OK"

'以下是加密函数

Functionstr2hex(ByvalstrHex)

Fori=1toLen(strHex)

sHex=sHex&Hex(Asc(mid(strHex,i,1)))

next

str2Hex=sHex

endfunction

【vbs脚本 加密 几个小细节小结下】相关文章:

用vbscript来添加ip策略 自动封IP

[vbs]每一行的最后一个字符转换成_

VBS访问剪贴板的几种方法小结

vbs引用另一个vbs的代码

脚本编程 4 驱动器

vbscript脚本编程教程2利用fso来进行文件操作

脚本 MsAgent组件 微软精灵 揪出系统自带的宠物

vbs 脚本错误:操作中文件名或类名未找到的解决方法

encrypt.vbs 内容加密vbs实现代码

关于脚本调用外部对像和类型库

精品推荐
分类导航