Mas0n
mailto:MasonShi@88.com
翻车鱼

解密Cocos2d-x默认保护形式下的Luac

解密Cocos2d-x默认保护形式下的Luac

前几日得到若干份Coco2d-js框架编译的APP。

于是捣鼓起了jsc文件的解密。

网上找了好多解密的资料。

思路是一致的。

warning 注意
是解密,不是逆向。

加密的流程

主要是这几个类型。

  • XXTEA
  • XXTEA + ZIP
  • XXTEA + GZIP

网上的解密工具很少。

并且年代久远。

于是自己动手写了一份,来供自己快速调用。

XXTEA_Key的寻找

试了一些APP,发现多数未对key进行处理。

用010Editor搜索字符串jsb-adapter 或者 Cocos Game

在附近就能寻找到16位的key 形似 xxxxxxxx-xxxx-xx

还有一种通用的办法就是通过 Frida 进行Hook注入。

贴上代码

Java.perform(function(){
    let xxtea_decryptaddr = Module.findExportByName("libcocos2djs.so","xxtea_decrypt");
        console.log("[xxtea_decryptAddr]-> ",xxtea_decryptaddr);
        Interceptor.attach(xxtea_decryptaddr,{
            onEnter:function (args) {
                console.log("[key]-> "+ args[2].readCString())  // 打印Key
            },
            onLeave:function (retval) {
            }
        })
})

Hook libcocos2djs.so 中的 xxtea_decrypt 函数,得到xxtea_key。

脚本食用方法

我在GitHub也有写使用说明。

只需要将APP使用压缩包工具打开,将assets文件夹中的src文件夹解压到一个路径。打开Terminal/Cmd,输入脚本指令。

python main.py [-d] [xxteaKey] [jscDir]

示例:

python main.py -d xxxxxxxx-xxxx-xx C:\DecJsc-master\src

脚本会在src/out目录下输出解密后的文件。

至此完成解密过程。

本文链接:https://blog.shi1011.cn/re/android/450
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可

Mas0n

文章作者

小白菜进行回复 取消回复

textsms
account_circle
email

翻车鱼

解密Cocos2d-x默认保护形式下的Luac
前几日得到若干份Coco2d-js框架编译的APP。于是捣鼓起了jsc文件的解密。网上找了好多解密的资料。思路是一致的。 warning 注意是解密,不是逆向。 加密的流程 主要是这几个类型…
扫描二维码继续阅读
2021-01-15