javascript Obfuscator加密的代码,如何解密?
发布于 作者:苏南大叔 来源:程序如此灵动~最近苏南大叔碰到了一款js加密的程序,名字叫做Obfuscator
。效果猛一看上去还不错,至少比单纯的eval加密要难解密一些。那么,这个程序加密的js
代码,如何解密呢?这里必须先澄清一个事实,那就是网页端的js
都是可以解密的。
无论加密成什么样,只要是在浏览器端可以执行,那就是肯定可以解密的。否则,浏览器根本执行不了,对吧?浏览器端本身是自身不支持任何算法的。所以,任何js
类的解密的方式就是:模仿浏览器去解读这些代码,Obfuscator
也不会例外。
Obfuscator
在线加密
下面这个地址是个在线操作的地址。
有个GUI可以下载,不过需要注册才能使用。
Obfuscator
云端解密
大概操作了一下,看上去是调用的webserice,实体代码不在本地。现在的程序员们也是越来越聪明了,关键代码放服务器上,真心是最佳防破解手段啊。知识产权保护最佳选择。看里面的apikey了没有,典型的web服务啊。
当然了,这里http://www.javascriptobfuscator.com/downloads.aspx 还有个好东西,可以集成到你的c#程序里面(下图第二项)。听上去不错。当然,第一项就是上边的gui了,第三项就是个webservice地址。
csharp
的demo
打开看看,果然不错所料,apikey
和password
引入眼帘。代码作者玩了一把好手段。哈哈。真心还是web服务。讲真,这样才更能使这个软件的js加密方式更保险,更有生命力啊。
Obfuscator
本地解密原理
手工解密:obfuscator
是比较容易破解掉的,如果您已经决定手工破解。那么,加密原理就是:
把习惯上写的"点"操作符换成"数组"操作符。例如:window.location
,它就变成了window["location"]
。然后再把这些关键词提出来放在个config变量里面去,然后再做关键词混淆替换。
工具解密:
如果您想依靠工具来破解,那么,您可以试试使用老版本的火狐浏览器+最后一版firebug
,里面可以直接解密出结果。不用怀疑,浏览器就是可以识别任何js
的加密的。总是eval
来eval
去的,只不过firebug
把这一个过程,给显式的显示出来了而已,也就是其自动解密的过程。否则浏览器不识别,也是不能运行的对吧?参考文章:
结论
当然这个Obfuscator
加密比eval
加密算法的解密是费劲多了。不过,动动手而已,也蛮简单的说。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。