繁体   English   中英

Xposed:如何挂钩动态加载的dex文件中的方法?

[英]Xposed: how to hook a method which is in dynamically loaded dex file?

Xposed Framework有两个问题:

  1. 如果要挂接的方法在动态加载的dex中,这意味着该dex是在运行时由DexClassLoader或PathClassLoader加载的,则Xposed会引发ClassNotFound异常。 那么如何在这样的dex文件中挂钩方法呢?
  2. 如果我要挂钩的方法具有自定义类型参数,例如findAndHookMethod("com.XXX.XXX.XXX", lpparam.classLoader, "getXXX", CustomType.class, new XC_MethodHook() { Eclipse给了我一个错误,提示“无法解决”。那么如何解决呢?我应该将dex转换为jar并将其放入项目的buildpath中吗?

背景是:我正在尝试创建Xposed模块以将方法挂接到另一个应用程序中。

对于#2,使用反射获取所需参数的Class对象。 Xposed框架为此提供了一种方便的辅助方法:

    Class classCustomType = XposedHelpers.findClass("com.package.name.CustomType", lpparam.classLoader);
    findAndHookMethod("com.XXX.XXX.XXX", lpparam.classLoader, "getXXX", classCustomType, new XC_MethodHook() {
        //hook the method
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM