Android Xposed框架 -- 开发篇

Xposed模块


一、简介


【1】基于前面对Xposed框架的学习,下面将演示如何使用Android Studio创建并编写一个自定义的Xposed模块


【2】目标APP功能:点击按钮时,调用toastMessage()方法,弹出一个“我未被劫持”的Toast信息


【3】Xposed模块功能:实现对toastMessage()方法的Hook,并返回一个“你已被劫持”的字符串信息


Xposed框架API:http://api.xposed.info/reference/packages.html


二、模块开发流程


【1】目标APP:新建一个Activity,并添加一个按钮,实现目标APP的功能




【2】gradle配置:app/build.gradle文件中添加Xposed API对应的依赖




Note >>>  这一步也可以通过下载导入XposedBridge.jar的方式完成


1,下载链接:https://forum.xda-developers.com/xposed/xposed-api-changelog-developer-news-t2714067


2,安装参照教程:https://miketech.it/android-xposed-carrier-edit/


【3】AndroidManifest配置:application标签下添加3组meta-data配置




【4】Xposed模块:新建一个类HookToast,并实现IXposedHookLoadPackage接口


1,实现IXposedHookLoadPackage接口中的handleLoadPackage方法,并首先筛选到我们目标程序的包名


2, 调用XposedHelpers中的findAndHookMethod方法,对MainActivity中的toastMessage方法进行Hook


3,在Hook回调中的beforeHookedMethodafterHookedMethod方法里进行劫持操作




【5】assets目录下创建xposed_init文件:告诉Xposed框架模块的主入口类


1,添加assets文件夹:右键点击 app这个module  --> new --> Folder -->Assets Folder,然后确认即可




2,创建xposed_init文件:assets中new一个file,并在其中写上入口类的完整路径




【6】关闭Android Studio的Instant Run功能,否则直接run会报错




【7】运行项目:结果如下所示




Note >>>  因为Xposed框架是从根上Hook了Android Java虚拟机,所以需要Root权限,并且每次为它启用新插件APP时都需要重新启动才能生效!!!


【8】开启Xposed模块并软重启


1,选中模块




2,选择重启




3,运行结果




至此,一个简单的xposed模块就编写完成了,并且可以看到劫持篡改后的结果。


-------------------------------------------------------------------------------------------------------------------------------


【讨论】???直接手机重启,一直是未劫持,上面流程中是使用xposedInstaller进行软重启后的运行效果


两种重启方式对应的日志,如下所示:




三、参考资料


【1】http://blog.csdn.net/mrglaucusss/article/details/50963542?utm_source=itdadao&utm_medium=referral


【2】http://www.jianshu.com/p/2b8343c774df#


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值