2
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 参数

4

1 回答 1

2

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

<outer class name>$<number>

其中 number 从 1 开始,对于每个匿名内部类,它只增加 1。

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

看起来你正在练习使用 Frida,因为通常你没有应用程序的源代码。因此,常用的方法是使用已编译的 APK 文件并使用例如apktoolJadx对其进行反编译。

在生成的 smali 源代码中使用 apktool,您可以轻松识别您正在寻找的内部类,您只需将 smali 类名替换/.常规 Java 类名即可。

在 Jadx 中,原始类名作为注释添加。

于 2019-08-26T17:15:49.513 回答