cocos creator 下的jsc
cocos creator 编译之后的所生成的jsc文件,虽然后缀是jsc,但其实和js虚拟机所执行的字节码(jsc)是二个不同的东西,只是使用xxtea对js文件进行加密而已。xxtea是可逆的,所以cocos creator下的jsc是完全可逆的,因为本质上是一个加解密过程。
当然creator在构建之后形成的js文件本身已经有过一些混淆&压缩,所以jsc还原成js看到的也不是开发时候的源文件了。
一、如何解码文件
涉及到解码文件,我比较常用的方法分为静态分析、动态调试。
1.1、静态分析
静态分析就是利用一些工具(我一般用IDA、nodepad++、Hworks、ILspy),查看被编译之后的加密算法/解码算法。如果是一些三方的加密算法,网上应该能找到很多现成的逆向实现;如果是项目自有实现的加密,就得自己写一个逆向实现了。
1.2、动态调试
动态调试我一般用IDA(具体的动态调试过程以后再单独写一篇),直接在解码之后的位置输出明文即可。当然也先进行静态分析,查找到解码的位置。
动态调试的好处就是不需要关心算法。有些时候自有实现的算法代码量大或看不懂别人算法的时候,用动态调试就很省力。
二、准备工作
了解了cocos creator 的jsc的本质之后,逆向就变得很简单,就是xxtea的解码。那么xxtea如何解码呢,对xxtea算法有所了解的或使用xxtea算法加密过文件的(cocos2d的lua加密