JavaScript eXtreme Obfuscator:JavaScript极限混淆器

功能:

1、格式化代码

2、根据前缀、后缀、正则表达式重命名变量,并可指定新变量名的前缀

3、根据前缀、后缀、正则表达式重命名函数,并可指定新函数名的前缀 

4、去掉换行、空白、注释

5、数字混淆

6、字符串混淆

7、花指令混淆

8、流程混淆 

9、打包(或者叫压缩) 

截图:

 

 

 

说明:

1、格式化的过程不是简单地替换,而是进行了适当的改进。如:在语句的结束添加“;”,为if、for、while等增加“{}”,将正则表达式“/....../”改为“new RegExp”的形式。

2、数字混淆是将数字替换成一个十六进制的表达式。

3、字符串混淆是将字符串简单加密后通过一个函数进行解密。

4、花指令混淆:是随机插入一些比较让人迷惑的if……else……指令,加大阅读的困难。 

5、流程混淆:用随机的循环配合if或switch,在不破坏执行顺序的情况下打乱代码的顺序,加大阅读的困难。

6、Pack:用一个简单的方法减小代码的长度,很常见。但会造成效率降低。

 

也正因为不是简单地替换,带来了新的麻烦。已知问题有:

1、某些朋友认为“{}” 比较多余,但我还是加上去了。

2、算数表达式之类的我加上了“()” ,这个到不是为了好看,而是因为我比较懒,不想去把精力花在处理运算符的优先级上。结果导致一个算数表达式可能会变成这样“1+2*3+4”=>“((1+(2*3))+4)”(MS比较恶心些,下次再改进吧)。

3、对于正则表达式,一般情况下不会出现问题。目前唯一已知的问题是JQuery中出现了“/=.../” 这种类型的正则表达式,会导致无法解析。 

 

最后, 既然是混淆,不可避免地使代码变得庞大,但并会对效率造成什么太大的影响,这就是传说中的双刃剑吧。

posted @ 2010-04-27 15:12 陈鹏(偶是坏人) 阅读(166) 评论(0) 编辑