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() {
            TXOut.this.evaluateJavascript(
                    "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();",
                    new ValueCallback<String>() {
                        @Override
                        public void onReceiveValue(String html) {
                            // code here
                        }
                    });
        }

        public void run() {}
    }
}


我如何使用frida钩住TXOut ---> TXIn ---> b ---> new ValueCallback()---> onReceiveValue?

我想获取此方法的html参数

最佳答案

匿名内部类使用以下方案获取生成的类名称:

<outer class name>$<number>


数字从1开始,对于每个匿名内部类,数字仅增加1。

因此,在您的情况下,最有可能是com.test.testapplication.TXOut.TXIn$1

似乎您正在练习使用Frida,因为通常您没有应用程序的源代码。
因此,常见的方法是使用已编译的APK文件,然后使用例如apktool。在生成的smali源代码中,您可以轻松识别所需的内部类,只需将/替换为.,即可将smali类名转换回常规Java类名。

07-24 21:27