前言

Xposed(框架)

Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的系统框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块或插件。

XopsedInstall

是管理和安装Xposed框架及Xposed模块或者插件的应用工具(apk);

注意:要区分Xposed和XposedInstall的概念;

Xposed及XposedInstall

https://github.com/rovo89

XposedInstall下载

https://repo.xposed.info/module/de.robv.android.xposed.installer

https://dl-xda.xposed.info/modules/de.robv.android.xposed.installer_v33_36570c.apk

Xposed的jar包

https://bintray.com/rovo89/de.robv.android.xposed/api

Xposed运行环境

手机必须ROOT,这也是Xposed的比较遗憾的地方;我使用的是逍遥模拟器,这样就解决了没有root手机的问题;

应用场景

可以通过集成了Xposed框架的App(模块或者说插件)来Hook其他APP,Hook能够将自己的代码“融入”被勾住(Hook)的进程中,成为目标进程的一部分;在Andorid沙箱机制下,Hook是我们能通过一个程序改变其他程序某些行为得以实现;

新建一个被Hook的APP

1,为了简单明了此APP只有一个主页面,里面有一个TextView显示Hook前后的不同;

此APP包名:com.ang.target

public class MainActivity extends AppCompatActivity {private TextView tv_hello;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_hello = findViewById(R.id.tv_hello);}
}

layout布局文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"><TextViewandroid:id="@+id/tv_hello"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="hello world"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

2,把被hook的应用安装到已经ROOT的手机或者Root的模拟器中;

集成Xposed框架的APP

项目地址:https://github.com/lz-ang/XposedSample.git

1,AndroidStudio新建项目,项目名称:XposedSample,此项目可以有Activity也可以没有;

如果没有Activity需要通过命令打包成APK,Terminal终端运行 gradlew app:assembleDebug命令打包apk

2,model下的build.gradle引入依赖,也可以不引入依赖,引入jar包的方式;需要注意都是在编译有效,打包的时候都不打包进去(compileOnly或者compileOnly fileTree);

compileOnly 'de.robv.android.xposed:api:82'
compileOnly 'de.robv.android.xposed:api:82:sources'

3,AndroidManifest.xml中配置

在Application标签里面(和Activity同级)加三个meta-data

<!-- 是否是xposed模块,xposed根据这个来判断是否是模块 -->
<meta-data android:name="xposedmodule" android:value="true" /> <!-- 模块描述,显示在xposed模块列表那里第二行 -->
<meta-data android:name="xposeddescription" android:value="测试Xposed模块" /><!-- 最低xposed版本号(lib文件名可知) -->
<meta-data android:name="xposedminversion" android:value="30" />

4,新建Hook工具类,类名自定义即可;并实现IXposedHookLoadPackage接口;

public class HookUitl implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable     {XposedBridge.log("Hook已经成功了");if (!lpparam.packageName.equals("com.ang.target")) {return;}if (lpparam.packageName.equals("com.ang.target")) {XposedHelpers.findAndHookMethod("com.ang.target.MainActivity",lpparam.classLoader, "onCreate", Bundle.class, new XC_MethodHook() {@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {//不能通过Class.forName()来获取Class ,在跨应用时会失效Class c = lpparam.classLoader.loadClass("com.ang.target.MainActivity");Field field = c.getDeclaredField("tv_hello");field.setAccessible(true);//param.thisObject 为执行该方法的对象,在这里指MainActivityTextView textView = (TextView) field.get(param.thisObject);textView.setText("Hello Xposed");}});}}
}

5,新建assets目录,并在此目录下新建文件名为:xposed_init 的文件,如果提示选择文件格式那就选text格式即可;

xposed_init 文件中写里面的代码是你的Hook类的包名+类名。

com.ang.xposedsample.HookUitl

6,安装到Root的手机或者模拟器中

安装XposedInstall

1,安装XposedInstall

2,在XposedInstall中安装Xposed框架,目前最新版本89,点击Version 89,根据提示安装;如上图"安装/更新",安装成功后重启手机;安装成功之后的界面如下;

3,XposedInstall在模块中找到XposedSample模块,并勾选;重启系统;然后点击XposedSample运行起来(我的是有主Activity),点击被Hook的应用;你会发现TextView的内容被改变了;说明Hook成功了;

如果连不上模拟器,执行如下命令

adb connect 127.0.0.1:21503

Android 集成Xposed框架相关推荐

  1. Android之Xposed框架完全使用指南

    文章目录 Xposed环境搭建 Xposed简介 Xposed原理 Xposed的安装 Xposed插件开发 Xposed插件编写流程 Xposed开发之Hook构造函数 相关API 无参构造函数的h ...

  2. android安装Xposed框架--魅族系列手机

    工具:(说明适用于魅族Note2.Note3和Note5已测试.其他机型可以自测) 魅蓝Note2手机一部. 爱玩机(魅化UI). KingRoot(获取Root权限)[也可以登录Flyme账号,获取 ...

  3. [android]了解和使用神器Xposed框架

    了解和使用Android神器Xposed框架-原全文 以下摘录: Xposed框架有什么好玩的 好玩有用的Xposed模块有很多,不过鉴于小编非常纯洁而且正直,像抢红包模块.刷屏模块这种不正义的模块, ...

  4. xp怎样安装android-studio,Xposed 框架的安装

    借鉴: 安装流程: 安装 雷电模拟器3.93 下载安装xposed框架. xposed 框架在Dalvik 虚拟机和ART虚拟机上的安装不一样(至于ART虚拟机和Dalvik虚拟机的区别,可以参阅 文 ...

  5. 安卓逆向_22( 一 ) --- Xposed【 Android Studio + Xposed 实现简单的 hook 】

    From:使用渗透测试框架 Xposed 框架 hook 调试 Android APP:https://www.freebuf.com/articles/terminal/56453.html Xpo ...

  6. Edxposed安装和xposed框架在Android 8.0以上手机使用最全攻略

    d在网上,关于Xposed模块编写的博客文章可谓是一抓一大把.但由于时间的推移,很多工具和方法都发生了变化,也正因此,网上的文章往往有一些时限性,比如现如今 provide 这个关键字已经被舍弃了却仍 ...

  7. 未root手机如何使用Xposed框架(Android抓包无忧矣~)

    一.目的   手机无法root还需要使用xposed框架配合JustTrustMe插件绕过SSL Pinning抓取手机应用数据包怎么办? 二.方法一:VirtualXposed 2.1 介绍   一 ...

  8. 014 Android之Cydia与Xposed框架入门

    文章目录 Android Hook框架介绍 Cydia Substrate 插件编写步骤 实例:编写Cydia修改系统字体颜色 Xposed 插件编写步骤 实例:Hook获取手机序列号 准备工作 获取 ...

  9. android自动化持续集成,Android系统的持续集成自动化测试框架的研究与实践

    摘要: 近几年,Android系统占据着智能移动设备操作系统领域中极大的市场份额.随着Android市场中软件数量的不断攀升,移动用户对Android应用的质量要求也越来越高.如何保证Android软 ...

最新文章

  1. linux进程通信:pipe实现进程同步
  2. 图灵直播——听胡阳老师和大家聊聊《Python Web开发者的破局之道》
  3. 最清晰的讲解各种梯度下降法原理与Dropout
  4. 使用SQLCMD在SQLServer执行多个脚本
  5. 库-libuv 和 libev的对比
  6. mysql有热备设置_Mysql数据热备配置与操作方法
  7. CREO图文教程:三维设计案例之一腔多模设计(定位参照零件导入模具模型)图文教程之详细攻略
  8. R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现
  9. 【高等数学】弧微分、渐近线、曲率和曲率半径
  10. WINDOW -- 给硬盘分盘以及合盘
  11. 大话 Python:python 操作 excel 系列 -- 数据的提取与筛选
  12. 从头开始训练一个词性标注模型
  13. 在linux系统上安装飞秋,linux [Fedora] 下的 飞秋/飞鸽传书
  14. python雪花_用 Python 实现雪花效果
  15. 开公司需要了解的相关法律
  16. Android实验报告
  17. 【EXCEL】多个sheet合并成一个sheet
  18. Bambook 网页内容下载器
  19. python爬虫+Flask可视化展示
  20. 来自苹果的编程语言——Swift简单介绍【整理】

热门文章

  1. qt 引发了异常: 写入访问权限冲突。this 是 0x7FF700000000。
  2. Bootstrap按钮样式
  3. Matlab / ArcGIS 处理GPM全球月均降水数据
  4. 数理统计(matlab实现)
  5. 如何在html页面中左尖括号,想要在HTML中显示一个尖括号“
  6. mysql 匹配多个字符,【单选题】在MySQL语句中,可以匹配0个到多个字符的通配符是( ) A. * B. % C. ? D. –...
  7. Android转换位图BUG,知其然不知其所以然
  8. 使用curl工具通过Gopher协议发送GET请求
  9. Windows 10 Insider Preview 预览版本19603发布
  10. 面积计算9860SD计算器程序(好用就用,不用就删-----歪XX)