愤怒的小鸟使用了哪种JavaScript混淆技术?

8

愤怒的小鸟已经在Chrome网上商店(http://chrome.angrybirds.com)上发布。

它们的JavaScript代码被混淆,看起来比我目前见过的任何JS混淆都要好。

我想知道他们使用的是什么或者是否有类似的东西。


哇,我正在看它的代码!太疯狂了... 要查看代码:检查页面元素,进入其中一个 iframe,找到 body,然后你会看到几个 script 标签。右键单击,复制为 HTML,在某个地方粘贴即可查看。我想知道是否可以使用那段代码在其他浏览器上运行... - ariel
糟糕..只需要打开http://chrome.angrybirds.com/,它在火狐浏览器上可以正常运行。 - ariel
在 Firefox 上没有轮子支持.. 在 IE9 上运行甚至比 Chrome 更加流畅 :P - ariel
3个回答

5

该代码似乎最初是用GWT编写的 - 这很有道理,因为Android上有一个版本,可能是用Java编写的...

然后使用Closure Compiler在高级模式下进行了优化(GWT支持此功能)。

编辑:糟糕!

不是高级模式。输出通过Closure Compiler的高级模式进行优化。例如,诸如“null”之类的符号未像Closure混淆程序中那样被别名化。同时,“var J; var K;”这样的内容将被Closure缩短为“var J,K”。if语句仍然存在,但大多数情况下都会被编译器消除(替换为&&和||运算符以缩短代码)。也似乎没有对属性进行扁平化或虚拟化处理,这是Closure Compiler的标志性特点。

由于代码似乎没有使用JavaScript库 - 看起来是纯JavaScript与DOM访问,因此很难检查属性重命名。

它看起来像:GWT使用Closure Compiler的简单模式

它似乎已经被普通JavaScript代码缩小器缩小。看起来像Closure Compiler的简单模式,因为:

  1. 变量被重命名为“a”、“b”等 - 这是Closure Compiler采用的一种做法
  2. GWT也是谷歌的框架
  3. 混淆代码中的换行符并不常见,但在Closure Compiler中可以找到

3

这似乎是来自Google CC的代码压缩。我认为它与jscrambler的免费版本混淆程度相当。


2

如果我没记错的话,根据Google IO以及源代码的查看,我很确定它是使用Google Web Toolkit编码的。

整个项目都是用Java编写的,然后编译和混淆成javascript。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接