Это мультидекс апк.Я хочу подключить метод в классе defpackage.bky, показанном на следующем снимке экрана.
![Jadx screenshot](https://i.stack.imgur.com/UtYPx.png)
Ссылка на снимок экрана Jadx
Я попытался подключить метод «attach» класса Application.class следующим образом, но не смог: «java.lang.ClassNotFoundException: не нашел класс« defpackage.bky »на пути».
XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
ClassLoader cl = ((Context)param.args[0]).getClassLoader();
Class<?> hookclass = null;
try {
hookclass = cl.loadClass("defpackage.bky");
} catch (Exception e) {
Log.e("MtwmXposed", "寻找defpackage.bky报错", e);
hookclass = null;
}
if(hookclass != null) {
Log.i("MtwmXposed", "寻找defpackage.bky成功");
XposedHelpers.findAndHookMethod(hookclass, "a",
JSONObject.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
JSONObject shop_info = (JSONObject) param.args[0];
Log.d("MtwmXposed", "From defpackage.bkt.a: " + shop_info.toString(2));
}
});
}
}
});
Я также пытался подключить метод "getClass" ClassLoader.class следующим образом, но также не нашел defpackage.bky.
XposedHelpers.findAndHookMethod(ClassLoader.class, "loadClass", String.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
if (param.hasThrowable()) return;
Class<?> cls = (Class<?>) param.getResult();
String name = cls.getName();
Log.d("MtwmXposed", "class name = " + name);
if (name.equals("defpackage.bky")) {
Log.i("MtwmXposed", "寻找defpackage.bky成功");
XposedHelpers.findAndHookMethod(cls, "a",
JSONObject.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
JSONObject shop_info = (JSONObject) param.args[0];
Log.d("MtwmXposed", "From defpackage.bkt.a: " + shop_info.toString(2));
}
});
}
}
});