Frida新增了一个匿名类对象并挂钩了它的方法?

时间:2019-08-28 02:30:51

标签: javascript java android reverse-engineering frida

我想钩住的Java代码

package com.test.testapplication;

import android.content.Context;
import android.webkit.ValueCallback;
import android.webkit.WebView;

public abstract class TXOut extends WebView {
    public TXOut(Context context) {
        super(context);
    }

    private class TXIn implements Runnable {
        String a;
        ValueCallback b;

        TXIn(String str) {
            this.a = str;
        }

        private void b() {
            int temp = 0;
            temp = temp + 3;
        }

        public void run() {}
    }
}

现在,我想使用Frida钩住 TXOut.TXIn.b ,并在内部提取评价Javascript方法,该方法需要回调方法来接收结果,因此我必须新建一个匿名类对象,并且我需要在弗里达做到这一点。

在Frida注入后, TXOut.TXIn.b 应该具有这样的行为

        private void b() {
            int temp = 0;
            temp = temp + 3;
            TXOut.this.evaluateJavascript(
                    "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();",
                    new ValueCallback<String>() {
                        @Override
                        public void onReceiveValue(String html) {
                            print(html);
                        }
                    });
        }

这是我的frida javascript代码
我想新建一个匿名类对象,并挂接该对象的onReceiveValue方法,并获取其html参数。 但是我不知道如何编码。 有人可以帮我吗,谢谢。

var TXOut_TXIn_class = Java.use('TXOut$TXIn');
var TXOut_TXIn_class_b = TXOut_TXIn_class.b.overload();
TXOut_TXIn_class_b.implementation = function () 
{
    var returnValue = TXOut_TXIn_class_b.apply(this, arguments);
    //new ValueCallback<String>() and hook onReceiveValue method and print html argument
    //Don't know how to write it here
    return returnValue;
}

0 个答案:

没有答案