Xposed 插件开发(二)—— 寻找你需要 hook 的 Activity

原创
2018/09/11 09:52
阅读数 4.4K

    上一把只是 Xposed 工具的一个简单介绍,从这一篇文章开始,我们进入正式 hook 阶段,从简单的 hook 开始一步步深入!

 

    首先,直接上 hook 源码方式,如下信息:

XposedHelpers.findAndHookMethod(Activity.class, "onCreate", Bundle.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                Activity thisObject = (Activity) param.thisObject;
                XposedBridge.log("当前 Activity : " + thisObject.getClass().getName());


                Field[] fields = thisObject.getClass().getDeclaredFields();
                for (Field field : fields) {
                    field.setAccessible(true);

                    try {
                        field.set(thisObject, field.getName());
                    } catch (Throwable e) {
                        e.printStackTrace();
                    }

                    Object o = field.get(thisObject);
                    XposedBridge.log("\t\t\t" + field.getName() + " = " + o.getClass().getName());
                }

                super.afterHookedMethod(param);
            }
        });

    

    在 android 中,所有的页面(我这里暂且称之为页面)都是有 Activity 来担当!主要的 入口方法为 onCreate()。

    无论你是 X 信、某宝、抖某等,他们的定制都是继承于android 原生的 Activity 。 这里的 thisObject 是真正的 Activity ,我们只需要通过调用   thisObject.getClass().getName() 即可获取到我们需要 hook 的 Activity。

 

      这种方法是不是超级简单!!!

 

       注:由于个人水平有限,有误之处,请多多指导!

 

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部