【问题标题】:what javascript obfuscation does angry birds use?愤怒的小鸟使用什么 javascript 混淆?
【发布时间】:2011-05-13 10:12:23
【问题描述】:

愤怒的小鸟在 chrome 网上商店 (http://chrome.angrybirds.com) 上推出

他们的 javascript 代码被混淆了,它似乎比我迄今为止看到的任何 js 混淆都好。

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

【问题讨论】:

  • 哇,这会儿我在看它的代码!太疯狂了...要查看代码:检查页面上的元素,转到那里的一个 iframe,正文,您会看到几个脚本标签。右键单击,复制为html,粘贴到某个地方,你会看到它。我想知道是否可以使用该代码在其他浏览器上运行它...
  • bummer.. 只需要打开chrome.angrybirds.com 就可以在firefox 中运行了
  • 在 ff.. 上没有车轮支持,在 ie9 上运行甚至比 chrome 更流畅:P

标签: javascript obfuscation


【解决方案1】:

它似乎最初是用 GWT 编写的——有道理,因为在 Android 上运行的一个版本可能是用 Java 编写的......

然后在高级模式下使用闭包编译器进行优化(GWT 支持)。

编辑:哎呀!

不是高级模式。输出由 Closure Compiler 的高级模式未优化。例如,诸如“null”之类的符号不像在闭包混淆程序中那样具有别名。此外,诸如“var J; var K;”之类的东西将被 Closure 缩短为“var J,K”。如果语句仍然存在,编译器将主要消除这些语句(由 && 和 || 运算符代替以缩短代码)。似乎也没有任何扁平化的属性或虚拟化是 Closure Compiler 的标志。

很难检查属性的重命名,因为代码似乎没有使用 JavaScript 库——它看起来像是带有 DOM 访问权限的普通 JavaScript。

看起来像什么:GWT 在简单模式下带有闭包编译器

看起来它已经被普通的 JavaScript 缩小器缩小了。看起来像简单模式下的闭包编译器,因为:

  1. 变量重命名为“a”、“b”等——闭包编译器采用的做法
  2. GWT 也是一个 Google 框架
  3. 混淆代码中的换行并不常见,但可以在 Closure Compiler 中找到

【讨论】:

    【解决方案2】:

    这似乎是 Google CC 的缩小版。我想说它与jscrambler 的免费版本混淆处于同一水平。

    【讨论】:

      【解决方案3】:

      如果我从 Google IO 中没记错的话,并且通过查看源代码,我几乎可以肯定它是使用 Google Web Toolkit 编码的。

      整个项目用 Java 编码,然后编译并混淆为 javascript。

      【讨论】:

        猜你喜欢
        • 2011-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多