安卓Cocos2dx-js游戏攻防

admin 2024年3月2日19:08:34评论26 views字数 974阅读3分14秒阅读模式

前言

目前市面见到的手游有很多是cocos2dx类型,我将以自己的经验对它做一个简单的逆向和保护的讲解。

分析流程

1、 特征识别

Cocos2dx类型的游戏,在安装包lib目录下,会有libcocos2djs.so文件

安卓Cocos2dx-js游戏攻防

在assets下有index.jsc文件

安卓Cocos2dx-js游戏攻防

2、 关键代码位置

Cocos2dx的关键逻辑一般都在index.jsc文件中,这个文件解密后是js代码。

3、 找密钥

解密index.jsc,密钥在libcocos2djs.so中,这个so会用xxtea算法解密jsc文件,我们可以通过直接搜关键字符串“Cocos Game”找到密钥,如下图,字符串旁边的就是密钥

安卓Cocos2dx-js游戏攻防

也可以通过ida分析so文件,通过xxtea算法定位到密钥,如下图,打马赛克的为密钥,它会经过jsb_set_xxtea_key设置密钥,后面用来解密index.jsc文件

安卓Cocos2dx-js游戏攻防

4、 解密

网上解密工具也不少,但是总感觉有各种问题,这儿推荐一款JscDecodeCsharp.exe,可以解密也可以压缩加密成jsc文件,网上一搜索就能找到对应的包。

5、 重打包

我们分析完代码,一般都会改改js代码,分析过程,我们可以插一些日志代码,比如console.log来打印出关键点的值,查看日志可以用android中logcat命令查看,或者用ddms这类看日志的工具查看。修改完代码后,关键的就是能重打包运行。 

重打包也是用4中提到的JscDecodeCsharp.exe,截图如下,解密时将文件拖入程序即可解密出js代码到输出框中,加密时,点击新加密,会自动把输出框中的js代码压缩并加密,具体使用方式,读者多探索几次就熟悉了。

安卓Cocos2dx-js游戏攻防

保护思路

1、 so加固

可以对app做整体加固,再对so做一个加固,或者对so中的字符串做加密,so整体做个代码膨胀增加被分析的难度。

2、 文件校验

增加对index.jsc文件的校验,防止jsc文件被替换。增加对so被hook的检测,防止hook so替换js代码。

3、 js混淆

Cocos2dx的核心代码都在js中,js相对反编译后的其他代码,比如c,汇编等,更容易看懂,建议增加一些混淆,字符串做一些加密。

总结

cocos2dx类型的app个人觉得相对还是比较好分析的,没做保护的app可以当一个新手练习逆向的例子。

安卓Cocos2dx-js游戏攻防

安卓Cocos2dx-js游戏攻防

原文始发于微信公众号(移动安全星球):安卓Cocos2dx-js游戏攻防

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月2日19:08:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓Cocos2dx-js游戏攻防http://cn-sec.com/archives/2541400.html

发表评论

匿名网友 填写信息