xposed

由于Xposed的Hook默认是针对整个系统的,因此需要先通过loadPackageParam.packageName去过滤目标包名

XposedBridge.log()是Xposed自己实现的打印日志log的函数

来通过loadPackageParam.classLoader.loadClass()函数实现对目标类对象的获取,等价于Frida脚本中所使用的Java.use()函数

XposedHelpers.findAndHookMethod()函数寻找并对指定函数进行Hook

1.第一个参数为之前所获取到的clazz类对象

2.第二个参数为目标函数名

3.之后的参数则是目标函数的参数列表。由于Hook的目标函数只有一个String类型的参数,因此这里写的是String.class

4.最后一个参数是对目标函数的一个Hook回调(callback),这个回调固定为XC_MethodHook。

XC_MethodHook

1.beforeHookedMethod()可以通过参数param获取被Hook函数的参数值,通常被用于在目标函数执行前获取和更改被Hook函数的参数

2.afterHookedMethod()被用于获取和更改被Hook函数的返回 值 , 这 里 直 接 将 函 数 的 返 回 值 修 改 为 “You has beenhijacked”

##XposedDemo中添加Xposed模块的入口点

依 次 选 择New→Folder→Assets Folder,在弹出的窗口中直接单击Finish按钮完成assets文件夹的创建然后将刚才创建的Hook类的完整类名(路径为com.roysue.xposeddemo.HookTest)写进xposed_init文件中