Android Xposed框架 -- 开发篇

2024-08-29 02:58
文章标签 android 开发 框架 xposed

本文主要是介绍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#


这篇关于Android Xposed框架 -- 开发篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116648

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式