android - 如何在 Xpose 中调用作为参数传递的自定义对象的方法?

标签 android xposed

在Xpose中,我试图调用AppCustomClass的方法getResult 对象作为 Hook 方法中的参数传递。

protected void myMethod(XC_LoadPackage.LoadPackageParam loadPackageParam) {
    final Class<?> appCustomClass = XposedHelpers.findClass("com.app.customClass", loadPackageParam.classLoader);

    findAndHookMethod("com.app.aClass", loadPackageParam.classLoader, "aMethod", appCustomClass, new XC_MethodHook() {
        protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
          //How to call param.args[0].getResult()
      }
}

最佳答案

你可以使用XposedHelpers.callMethod 它有两个变体

callMethod(Object obj, String methodName, Class[]<?> parameterTypes, Object... args)

callMethod(Object obj, String methodName, Object... args)

所以你可以这样做

XposedHelpers.callMethod(param.args[0],"getResult");

如果需要参数,则执行

XposedHelpers.callMethod(param.args[0],"getResult",arg1,arg2,arg3);

注意:该方法是通过 findMethodBestMatch 解析的。 this( "callMethod") 方法抛出的异常是 XposedHelpers.InitationTargetError ,它给出了调用的方法抛出的异常(如果有)。

进一步阅读:http://api.xposed.info/reference/de/robv/android/xposed/XposedHelpers.html#callMethod(java.lang.Object,%20java.lang.String,%20java.lang.Object...)

关于android - 如何在 Xpose 中调用作为参数传递的自定义对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485746/

相关文章:

java - Xposed 访问函数中的变量

java - XPosed: Hook 枚举中覆盖的函数

android - 使用另一个项目作为库

android - "onAdLeftApplicationDone"的事件?

android - 通过 API v4 更新 Google 表格时转义单引号 (')

android - 读取Xposed模块中的文件

android - 我的Android应用程序如何扫描自己的内存映射以查找已知的不良关键字,例如“Xposed”或“Frida”?

java - Xposed模块,ClassNotFoundException动态加载类

android - 为什么 Android 模拟器忽略我的 list 权限?

android - 我怎样才能让 View 不扩展到它的兄弟 View