使用Frida 定位发送请求位置

对于App逆向时,时常不知道如何定位网络请求代码的发出位置,部分情况都是使用自定义框架开发的,想要快速定位这部分就得使用Frida 对JNI的string函数进行hook,看看是不是能再调用栈的位置能够找到。

function hookNewStringUTF() {
  const NewStringUTFAddr = findNewStringUtfAddr()
  console.log('NewStringUTFAddr', NewStringUTFAddr);
  if (NewStringUTFAddr !== null) {
    Interceptor.attach(NewStringUTFAddr, {
      onEnter: function (args) {
     
        let input = args[1].readCString()
        if (input.includes('target') || input.includes('target_str')) {
             console.log('<<<<<<<<<<<<<')
             console.log('input')
             console.log('RegisterNatives called from:\\n' + Thread.backtrace(this.context, Backtracer.FUZZY).map(DebugSymbol.fromAddress).join('\\n') + '\\n');
             console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
             console.log('>>>>>>>>>>>>>')
        }
      },
      onLeave: function (retval) {},
    })
  }
  const GetStringUTFChars = findGetStringUTFCharsAddr()
  // Hook GetStringUTFChars 函数
    Interceptor.attach(GetStringUTFChars, {
        onEnter: function (args) {
            // var env = args[0];
            // var jstr = args[1];
            // var isCopy = args[2];
            // console.log('GetStringUTFChars called with:', jstr, 'isCopy:', isCopy);
        },
        onLeave: function (retval) {
            var result = retval.readCString();

            if (result.includes('target') || result.includes('target_str') ) {
                 console.log('11<<<<<<<<<<<<<')
                 console.log('GetStringUTFChars returned:', result);
                 console.log('RegisterNatives called from:\\n' + Thread.backtrace(this.context, Backtracer.FUZZY).map(DebugSymbol.fromAddress).join('\\n') + '\\n');
                 console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
                 console.log('11>>>>>>>>>>>>>')
            }
         
        }
    });
}

以上方法试试,看能不能找到位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值