Xposed遇到的坑

比眉伴天荒 2022-06-07 14:07 454阅读 0赞

如果某个APP的dex有多个在安卓5,0以上ART会合成一个oat文件。那么5.0以下会存在多个dex。
所以在5.0以下hook一个某个方法,而这个方法不在主dex,而存在分包dex。此时xposed会在没有加载分包dex的时候进行回调handleLoadPackage().此时类加载器并没有加载分包里面的类 会导致 XposedHelpers.findAndHookMethod 抛出异常。

解决办法:
(大家可以以下参考文献,这里不制作车轮子)

  1. XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
  2. @Override
  3. protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  4. ClassLoader cl = ((Context)param.args[0]).getClassLoader();
  5. Class<?> hookclass = null;
  6. try {
  7. hookclass = cl.loadClass("xxx.xxx.xxx");
  8. } catch (Exception e) {
  9. Log.e("jyy", "寻找xxx.xxx.xxx报错", e);
  10. return;
  11. }
  12. Log.i("jyy", "寻找xxx.xxx.xxx成功");
  13. XposedHelpers.findAndHookMethod(hookclass, "xxx", new XC_MethodHook(){
  14. //进行hook操作
  15. });
  16. }
  17. });

参考1
参考2
参考3

发表评论

表情:
评论列表 (有 0 条评论,454人围观)

还没有评论,来说两句吧...

相关阅读

    相关 FastJson遇到

    1.集合中添加同一个对象两次 当我们转Json的时候,会出现 第二个对象是引用,而不是tostring. ![在这里插入图片描述][watermark_type_Zm

    相关 Linux遇到

    最近换了一个电脑  新安装了一个linux   装在虚拟机下   具体的安装过程则合理不在赘述 讲讲安装之后发现的问题吧  首先是没有汉字  重新下载安装  这个不复杂

    相关 Xposed遇到

    如果某个APP的dex有多个在安卓5,0以上ART会合成一个oat文件。那么5.0以下会存在多个dex。 所以在5.0以下hook一个某个方法,而这个方法不在主dex,而存

    相关 Redis遇到

    1.Redis连接不上的问题 1.1 首先查看applicaiton.yml文件中是否设置了密码password: 123456,然后看redis本身是否有密码(redis第

    相关 Hibernate 遇到

    传统的java开发中,通常分领域模型,model。在对数据进行保存的时候通常一般会保存到vo中,显示数据到页面的时候通常是dto,前几天遇到个坑,在dto中封装实体对象,...