加密文件先用16进制看了,同后缀文件有前几个字节是相同的,
所有加密文件尾部有固定的4个魔数AF BF CF DF
lib文件夹里有libcocos2djs.so文件,用ida分析了一下,看起来是xxtea加密,在函数
AppDelegate::applicationDidFinishLaunching 有密钥的信息,
喂给ai,说密钥就是zz-11-27072230,但是xxtea密钥是16字节,
把找到一些和xxtea相关的函数jsb_set_xxtea_key(std::string const&)、cocos2d::FileUtils::isxxtea(uchar const*,long)(以魔数判断是否xxtea加密,但是我没找到哪个函数加的魔数)、xxtea_encrypt、xxtea_decrypt把这些连同其中参数都喂给ai,
分析的结果是密钥直接用0填充是zz-11-2707223000,加密前的数据是原始数据+用0填充到4字节整数倍+4字节原始数据长度(这里我理解的可能有问题)
用ai以此写了几个版本解密的py代码,结果都没解出来
小白不会hook,ida也是刚学,反复折腾几天也没搞出来,求各位大佬帮忙指点一下
样本和so.zip (9.7 MB)




