vbs脚本 加密 几个小细节小结下
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
复制代码 代码如下: 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 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 注册表的禁用与解锁方法集合下一篇: 用vbs实现对文本文件中的项计数
关于vbs脚本 加密 几个小细节小结下的所有评论