lib目录下只有一个libcocos.so,应该是cocos类型没跑了。
主要内容都在assets目录中,其中包含了经过加密的jsc文件,需要对jsc文件进行解密处理。
其解密需要一个key,这个key就这libcocos.so里面,使用IDA打开看看,jsb_set_xxtea_key,
xxtea_decrypt,xxtea_encrypt关键函数。
上frida,hook这个key。
cocos.js内容如下。
function hookJava() { Java.perform(function() { var Cocos2dxActivity = Java.use("com.cocos.lib.CocosActivity") Cocos2dxActivity.onLoadNativeLibraries.implementation = function() { this.onLoadNativeLibraries() hookNative() } }) } function hookNative() { Interceptor.attach(Module.findExportByName("libcocos.so", "xxtea_decrypt"), { onEnter: function (args) { console.log("cocos key is : ", Memory.readUtf8String(args[2])); }, onLeave: function (returnValue) { } }) } hookJava()
hook到这个key为dY/abytIt/3twR3WVMFUDLG/TNk5/40iiC。
在IDA搜一下这个字符串,发现在这个函数中,Game::init,顾名思义游戏初始化。那有时候可以直接搜这个函数。
有了key,去解密看看。确实能解出东西,这个工具是jsc解密工具。
复制js到浏览器中,看看有没有需要的东西。搜一下decrypt,encrypt什么的看看。
拿到这行函数,整理一下看看。是能解出结果的。
看下抓包。
结束,撒花。