关于Cocos2dx-js游戏的jsc文件解密

初步分析

研究逆向先看正向,从官网上下载CocosCreator开发工具,使用案例js工程尝试构建编译,在构建发布页面很清楚的看到了脚本加密选项。

密匙选项

按流程构建编译后得到简单的样本APK。关于APK内各个文件夹的作用和内容,这里不在多说,感兴趣的同学可以结合Cocos2dx源码进行分析。

样本APK的jsc文件结构

先拿样本APK做简单的分析,先用Jadx-gui去java层稍微读下源码,了解下assets目录下二进制源代码的加载情况,在入口Cocos2dxActivity处我们看到有一个onLoadNativeLibraries函数,跳转到其声明发现加载了一个叫android.app.lib_name的字符串资源。

Coscos2dxActivity入口处

加载声明

在AndroidManifest.xml下找到其定义为cocos2djs,即加载了libcocos2djs.so文件。

xml文件中的定义

明确了加载Assets目录资源的操作大概率不在java层后,再结合非虫前辈的“jsc反编译工具编写探索之路”,研究对象随即转移到libcocos2djs.so上。

构建过程

通过阅读Cocos2dx源码发现,其脚本加解密用的就是 xxtea 加密和解密(和Cocos2dx-lua加解密相似)。进而结合CocosCreator了解到其构建项目的过程为:

  1. 工程用到的所有js脚本聚合为project.js等几个脚本
  2. 如果勾选“Zip 压缩”选项,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值