匿名class的Frida钩子覆盖方法?
Frida hook override method of anonymous class?
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 参数
匿名内部 classes 正在使用以下方案获取生成的 class 名称:
<outer class name>$<number>
其中数字从 1 开始,对于每个匿名内部 class 它只增加 1。
因此在您的情况下很可能是 com.test.testapplication.TXOut.TXIn
。
你好像在练习使用 Frida,因为你通常没有应用程序的源代码。
因此,常见的方法是使用已编译的 APK 文件并使用例如反编译它。 apktool or Jadx.
在生成的 smali 源中使用 apktool,您可以轻松识别您正在寻找的内部 class 您只需将 /
替换为 .
即可转换 smali [=28] =] 名称恢复为常规 Java class 名称。
在 Jadx 中,原来的 class 名称添加为注释。
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 参数
匿名内部 classes 正在使用以下方案获取生成的 class 名称:
<outer class name>$<number>
其中数字从 1 开始,对于每个匿名内部 class 它只增加 1。
因此在您的情况下很可能是 com.test.testapplication.TXOut.TXIn
。
你好像在练习使用 Frida,因为你通常没有应用程序的源代码。 因此,常见的方法是使用已编译的 APK 文件并使用例如反编译它。 apktool or Jadx.
在生成的 smali 源中使用 apktool,您可以轻松识别您正在寻找的内部 class 您只需将 /
替换为 .
即可转换 smali [=28] =] 名称恢复为常规 Java class 名称。
在 Jadx 中,原来的 class 名称添加为注释。