美文网首页
frida hook so简单尝试

frida hook so简单尝试

作者: 朝朝朝朝朝落 | 来源:发表于2021-06-16 17:08 被阅读0次

    需求: meiyanxiangji登录界面, 利用账密登录确认手机号是否是注册用户


    myxj0.png

    一, 查找参数位置

    WX20210616-171256@2x.png

    看到只有sig参数需要破解, jadx打开apk, 搜索参数,

    WechatIMG646.png
    myxj3.png
    使用zentracer(https://blog.csdn.net/qq_38851536/article/details/103755407?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242)
    结果:
    myxj4.png

    二, 确定参数加密位置, 就看是怎么加密的

    myxj5.png

    com.xxx.secret.SigEntity这个类, 很明显是so native方法(nativeGeneratorSigOld), 把手机里的apk导入电脑(https://blog.csdn.net/jss4j/article/details/88891334),改成.zip, 解压, 进入lib/arm64-v8a,找到librelease_sig.so, 拖进IDA,

    m6.png m8.png m9.png

    三, Frida hook so(方法一)

    jsCode_so_1="""
    Interceptor.attach(Module.findExportByName("librelease_sig.so" , "_Z13MD5_CalculatePKcjPc"), {
        onEnter: function(args) {
                send("open11111(" + Memory.readCString(args[0])+","+args[1]+")");
        },
        onLeave:function(retval){
        
        }
    });
    """
    
    m10.png

    运行, 结果, 可以看到手机号和密码在里面, 剩下的都是写死的:

    [*] open11111(oauth/access_token.json010898676081531385131625285601843.3.03.3.0.1534de2e7cf5b4d236.0.1868676860238407299.9.20Nexus 6PNexus 6PQQ64WIFIandroiddbc1fbc3e4cc39057304kkkk1234567phonezh-HansqA#QH=M+Ns&q+Z&J1623831095656Tw5AY783H@EU3#XC,0xe6)
    
    # 加密结果:
     917b383ad72c978d14fdbe9a14898579
    #这里最后的坑, 他把结果每2位颠倒了一下
    19b783a37dc279d841dfeba941985897
    

    三, Frida hook so(方法二,通过偏移)

    
    jsCode_so="""
    Java.perform(function () {     
        var base_addr = Module.findBaseAddress("librelease_sig.so");
        var offset = 0x8874;
    
        console.log("base_addr: " + base_addr);
        var func_addr=null;
    
        if(base_addr!=null) {
            func_addr = base_addr.add(offset);
            if (Process.arch == 'arm')
               var aaaa111 = func_addr.add(1);  //如果是32位地址+1
            else
            var aaaa111 = func_addr;
        }
    
        Interceptor.attach(func_addr, {
            onEnter: function(args){
                send("open(" + Memory.readCString(args[0])+","+args[1]+")");
            },
    });
    });
    """
    

    里面的offset就是ida里的值

    相关文章

      网友评论

          本文标题:frida hook so简单尝试

          本文链接:https://www.haomeiwen.com/subject/nzcfyltx.html