java - Frida hook 重写匿名类的方法?

标签 java python android frida

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 Hook TXOut ---> TXIn ---> b ---> new ValueCallback() ---> onReceiveValue

我想获取此方法的 html 参数

最佳答案

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

<outer class name>$<number>

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

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

您似乎正在练习使用 Frida,因为通常您没有应用程序的源代码。 因此,常见的方法是使用编译的 APK 文件并使用例如反编译它。 apktoolJadx .

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

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

关于java - Frida hook 重写匿名类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57657813/

相关文章:

python - 'str' 对象没有属性 'mime' 错误?

android - 编辑文本和搜索按钮缩小并越界

android - 来自 pictureTaken 的图像被拉伸(stretch)

java - 如何在 jME3 中修改 Swing 对象?

java - 移动链表中的项目

python - Django 文件上传输入验证和安全

python - 抓取网页时调用javascript函数

android - 编辑文本中的波斯数字在我打字时不起作用

java - tomcat 9 jdk 1.8 上的 struts tiles 1.3 [错误] 找不到指定 url 的操作配置

java - 将数组转换为 LinkedList