源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-05-15 12:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:vbs脚本 加密 几个小细节小结下
[u]复制代码[/u] 代码如下:
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文件拖到这个文件上就可以
[u]复制代码[/u] 代码如下:
'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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部