Android Hook - Xposed小结

Android Hook - Xposed

  • Xposed框架的基本概述
  • API Reference

Xposed 框架的基本运行环境如下:

    1、因为 Xposed 工作原理是在 /system/bin 目录下替换文件,在 install 的时候需要 root 权限,但是运行时不需要 root 权限。
    2、需要在 Android 4.0 以上版本的机器中

API Reference 基本Api:
关键类 : IXposedHookLoadPackage

public class HookDeom implements IXposedHookLoadPackage {
     @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
    //loadPackageParam 包含了加载的应用程序的一些基本信息。

关键类 : XposedHelpers

import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;

 // 例如获取Android 的FindViewById方法
     findAndHookMethod("android.view.View", loadPackageParam.classLoader, "findViewById", int.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
            //TODO : 这是方法执行后需要 Hook的位置
            }
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
            //TODO : 这是方法执行前需要 Hook的位置
            }
            });
         }

     findAndHookMethod(Class<?> clazz,   // 需要 Hook 的类名

        ClassLoader,   // 类加载器,可以设置为 null

      String methodName,    // 需要 Hook 的方法名

      Object... parameterTypesAndCallback);
/**
*
*该函数的最后一个参数集,包含了:
*
*(1)Hook 的目标方法的参数 , 譬如:
*
*    "com.android.internal.policy.impl.PhoneWindow.DecorView"
*     是方法的参数的类。
*
*( 2 )回调方法:
*  b.XC_MethodReplacement
     */

辅助项 API
XposedBridge类:

XposedBridge.log("message or trouble");
        //该方法可以将 log 信息以及 Throwable 抛出的异常信息输出到标准的 //logcat 以及 /data/xposed/debug.log这个文件中
    hookAllMethods / hookAllConstructors
XposedBridge.hookAllMethods 和XposedBridge.hookAllConstructors
//该方法可以用来hook 某个类中的所有方法或者构造函数,但是不同的 Rom (非 //Android 原生 Rom )会有不同的变种。

该方法可以用来hook 某个类中的所有方法或者构造函数,但是不同的 Rom (非 Android 原生 Rom )会有不同的变种。


XposedHelpers 类

这个类用的也是比较多,可以使用

Window => Preferences => Java => Editor => Content Assist => Favorites => New Type, enter de.robv.android.xposed.XposedHelpers

这种方式将XposedHelpers 这个类加入到 Eclipse 静态调用中方便查阅。

XposedHelpers.findMethod
XposedHelpers.findConstructor  /*这是一组用于检索方法的方法。*/
XposedHelpers.findField

XposedHelpers.callMethod 
XposedHelpers.callStaticMethod   /* 这是一组用于调用方法的方法 ,类似反射*/
XposedHelpers.newInstance
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值