2012-03-05 80 views
4

首先,我知道,混淆不能防止逆向工程;它只会让它变得越来越难,而这正是我所寻找的。的JavaScript混淆双

我的代码使用jQuery的;这是唯一的依赖。我正在寻找谷歌封闭编译器和jscrambler,这两者似乎都很受好评。如果我首先通过google闭包编译器,然后通过jscrambler传递我的代码,会发生什么?

请问代码仍然在每一个浏览器/平台工作像现在这样?双重混淆是否会增加任何复杂性来对源进行逆向工程?

+2

*问题:?!你有没有尝试* – epascarello 2012-03-05 02:09:28

+0

@epascarello:没有,双混淆看起来非常病毒样,谁会尝试吗? :D – 2012-03-05 02:20:51

+0

看起来,把代码放在jsPerformance或jsFiddle上,然后点击'美颜码',它会吓到你很容易理解代码。 – ajax333221 2012-03-05 02:36:40

回答

1

请问代码仍然在每一个浏览器/平台工作像现在这样?

是的,外部脚本会执行它的内部脚本,它会再次告诉您的浏览器执行内部脚本中的内部脚本。换句话说,ou可以将eval放入eval

有双重模糊添加任何复杂逆向工程的来源?

这不一定会增加复杂性,但它确实会导致需要采取额外步骤来获得您的来源。请注意,您使用的内部混淆本身是否会被外部混淆模糊化,因此在一次过程中,反向工程师会看到内部混淆的混淆代码,而不是实际的源代码本身。当我在过去进行逆向工程时(为了确定某个可执行文件是否是病毒),我真的在C#中遇到了一个程序,它以混淆的方式先解压缩另一个文件,然后再解包另一个文件DLL文件然后得到加载,然后它实际上从该DLL文件中的资源加载代码,该文件最终被执行,并执行一些讨厌的代码以连接到一些在线服务。

底线是,这要求我相当长的一段时间才能获得该混淆讨厌的代码。

所以,是的,双混淆可能会增加复杂性,并把它更长的时间才能得到你的代码。

但是,请确保你没有引入性能或维护成本的结果。

,是的,最终一切他们迷惑性可以进行反向工程访问...

0

混淆的工作方式是它非常简单,只是重命名变量为“A”,“B”,“C”等字样,以使它的可读性。它通常也会删除代码的所有格式,从而使整个类只从几百行输入中延长几行。

任何人谁真的想找出代码是干什么的,会的。正如你所说,这会让阅读和反向工程变得更加困难。不幸的是,由于你不能编译javascript,你就会被它固定在纯文本上,所以保护不是一个很好的选择。

我知道有产品在那里,让你加密脚本,但脚本仍然能够通过只在本地运行脚本进行解密。结果,一点努力就会产生未加密的脚本。