安卓手游之coco2djs.so逆向

一、解密主要逻辑代码

即将 assets\src 下的cocos2d-jsb.jscmain.js

1、解密工具:jsc解密v1.44

2、获取秘钥hook

function main() {
    Java.perform(function () {

        var coco = Java.use("org.cocos2dx.lib.Cocos2dxActivity");
        coco.onLoadNativeLibraries.implementation = function(){
            var onLoadNativeLibraries = this.onLoadNativeLibraries();
            hook_key();
        }
      
  })

 }
 function hook_key(){
    Interceptor.attach(Module.findExportByName('libcocos2djs.so','xxtea_decrypt'),{
        onEnter: function(args){
            console.log(Memory.readUtf8String(args[2]));

        },onLeave: function(retval){

        }
    }
    );
 }
setTimeout(main,100);

3、解出来的js代码格式化一下,然后搜索关键词:“ws://”,“send”,“sendmessage”,“encrypt”,“encode”,找到加密逻辑然后分析解密。

二、直接分析coco2djs.so

如果上面步骤分析出不了什么,直接so层hook试试

在这里插入图片描述

function get_module_address(soname,pianyi)
{
    var module_address = Module.findBaseAddress(soname);
    return module_address.add(pianyi);
}
 
function main()
{
    Java.perform(function () {
        Interceptor.attach(get_module_address("libcocos2djs.so",0x6B8F20),{
            onEnter: function (args) {
                //console.log(new Uint8Array(args[1].readByteArray(args[2].toInt32())).buffer);
                console.log(args[1].readByteArray(args[2].toInt32()));
            },
            onLeave: function (retval) {
                
            }
 
        });
    });
}
 
 
setTimeout(() => {
    main()
}, 200);
 

你可能感兴趣的:(android,javascript,开发语言)