frida rcp 调用 android app 中的函数无正常返回

11 天前
 senlinmuvs

java code by jadx:

public void getUnifiedSign(...) {
...
   try {
...
      //这个接口的实现类在 jadx 中找不到,应该是在.so 中了
      HashMap<String, String> securityFactors = this.mUnifiedSign.getSecurityFactors(hashMap3);
      if (securityFactors != null && !securityFactors.isEmpty()) {
         return securityFactors;
      }
      TBSdkLog.e(...);
      return null;
...
   } catch (Throwable th) {
      TBSdkLog.e("mtopsdk.InnerSignImpl", getInstanceId() + " [getUnifiedSign]get sign failed exception ,appKeyIndex=" + this.mtopConfig.appKeyIndex + ",authCode=" + this.mtopConfig.authCode, th);
      return null;
   }
}

hook.js

rpc.exports = {
    sign:function() {
        Java.perform(function() {
            reSign0();
            sign0();
        })
    }
};
function reSign0() {
   //这里重写了 getUnifiedSign 是能把入参和出参打印出来的
}
function sign0() {
...
    let resp = isi.getUnifiedSign(p1, p2, p3, p4, p5, p6);
    //the resp is null
...
}
}

Frida RCP 调用 getUnifiedSign 总是返回 null ,确认代码已经到达了这个 getSecurityFactors ,但可能直接报错导致返回 null 。但是如果是报错,应该会走到下面的 catch ,并且会输出日志,但是没有日志。日志 hook 已经验证过没有问题,当传一些不正常参数时 hook 的日志能打出来。 敢问如何排查这个问题?和这个鬼杠上了,参考过其它帖子的旧版本弄过但也没成功,还是弄这个最新版的。

172 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX