ASP/VBS加密,解密方法探讨

ASP/VBS现在不流行了,基本上没出什么新东西了,网上流传的都是传烂了的东西,Bug依旧Bug,漏洞依旧漏洞,还有些连成熟都算不上的就玩起加密来了!

对加密,解密的算法,我是外行,这里探讨的只是本人遇到过的几种加密方式及破解办法。

先声明一下:这里仅做技术上的探讨,不会承接任何非法或涉及版权问题的项目。本人做解密的经验有限,也不是专业做安全工作的,以往做的一些解密研究,仅是个人兴趣爱好,为了研究源码之用,没有涉及任何商业利益!如果有人想请我做这方面的工作,对不起!请自行研究!

好了,下面进入正题!

ASP/VBS代码的加密方法,据个人了解,常见的有四种(可能有些分的细了,分法不同)

1.官方提供的加密工具sce10,算是比较正规的加密方式,用这种方法加密的代码,语言必须定义为:VBScript.Encode

这种方法加密出来的代码有一个特点,一般以 #@~ 这几个字符开头,并且里面多次出现,并且不对中文字符编码

解密方式目前网络上有提供算法和程序的。有一个比较出名的软件名叫 scrdec18.exe 我一般使用这个解密,只是使用稍有麻烦,是在命令行下使用的。

官方网站:Windows Script Decode

2.个人或公司开发的加密组件,需要服务器安装相应的组件,然后将整段的ASP代码打包加密,再在相应的地方使用类似下面的代码解密运行

 

Set MyDecoder = Server.CreateObject("XXX.XXXDecoder")
MyDecoder.Tag = "XXXXX"
MyDecoder.Crc64 = "XXX...XX"
MyDecoder.Crc32 = "XXX..XXXX"
MyDecoder.RegCode = "XXXXX...XX="
MyDecoder.AddCode "+Fjk2iJwVThAQj3sp4TnU8jkB61Qo1sLRzDq4wd9xSkcmeGGx2jJZBrt/7kzLhp5k00xLnolCNWiJ27/"
MyDecoder.AddCode "u3VvRgKzLEHt4ZEEpcwDHMb9zjzhM3QVFwRMrkk2gXvroBz/+Ot42joQ27ifp/ex3qLySKGZi2EmNwxO"
'....很多个AddCode
MyDecoder.Execute
Set MyDecoder= nothing

形式一般是这种,但实际变化很多,有的只是换个写法。

这种方式有一个缺点就是如果服务器上没安装组件,代码是不能正常运行的。

3.字符串编码加密方式

这种方式比较简单,用VBS自身就可以实现解密,它只是把字符串逐字转成 Chr(code)然后再连接,只是给人一种看不懂的假像,其实并不算是加密,而且对代码性能及文件体积也有很大影响。

我还为此种方式写过一个解密脚本,基本上可以实现将字符串还原本色

解密脚本

代码很简单,其实就是匹配出里面的Chr函数逐字替换回去,再将字符串之间的连字符去除,基本上就还原字符串本色了。

用的时候改index2.asp为源文件名,index3.asp为新文件名,放到同目录下运行即可。如果需要更高级快捷的解密脚本,请自行扩展开发.呵呵

4.函数段加密

这种加密方式也是完全在脚本内部实现的,我也写过专门的解密工具,但现在一时找不到了。

这种方式原理就是匹配每个代码中的函数体,将函数体加密成一个字符串,然后由解密函数解密再执行,那个解密函数就在脚本内部。解密的方法就是找到解密函数,依次将每个函数体中的字符串解密覆盖过去。

 

好了,本人了解的就这么多,如有谬误,希望大家指正。技术探讨非常欢迎,仅是来解密的,还是不要张口了,免得大家尴尬!