xposed模块编写教程_最新的Xposed模块编写教程

本文是一篇关于Xposed模块编写的详细教程,涵盖了从创建被Hook的App到配置Xposed文件,再到编写和安装Xposed插件的全过程。通过实例讲解了如何在MainActivity的sRes方法上进行Hook,实现显示"你已被劫持"的效果。
摘要由CSDN通过智能技术生成

前言:最近看了很多的Xposed的入门教程,根据的我的实践,写此教程,希望对新手有所帮助。

1.编写一个被Hook的App.代码

1 packagecom.example.hookdemo;2

3 importandroid.os.Bundle;4 importandroid.support.design.widget.FloatingActionButton;5 importandroid.support.design.widget.Snackbar;6 importandroid.support.v7.app.AppCompatActivity;7 importandroid.support.v7.widget.Toolbar;8 importandroid.view.View;9 importandroid.view.Menu;10 importandroid.view.MenuItem;11 importandroid.widget.TextView;12

13 public class MainActivity extendsAppCompatActivity {14

15 @Override16 protected voidonCreate(Bundle savedInstanceState) {17 super.onCreate(savedInstanceState);18 setContentView(R.layout.activity_main);19 Toolbar toolbar =findViewById(R.id.toolbar);20 setSupportActionBar(toolbar);21

22 final TextView tv =findViewById(R.id.tv_hook);23

24 FloatingActionButton fab =findViewById(R.id.fab);25 fab.setOnClickListener(newView.OnClickListener() {26 @Override27 public voidonClick(View view) {28 tv.setText(sRes());29 }30 });31 }32

33 String sRes() {34 return "你未被劫持";35 }36 }

运行效果如下。

2.配置 xposed 文件

此处我们用的到是XposedAndroid 4.0.3 to Android 4.4 的版本。

1) 安装Xposed 到真机/虚拟机里

adb install E:\APK\xposed4.0-4.4.apk

2)新建一个Android 安卓工程,写Xposed插件。

在AndroidMainfest.xml 文件中增加如下代码

android:name="xposedmodule"

android:value="true" />

android:name="xposeddescription"

android:value="这是一个Xposed模块" />

android:name="xposedminversion"

android:value="54" />

在app/src/build.gradle 文件下添加以下代码,  compileOnly 'de.robv.android.xposed:api:82:sources' 可添可不添,其作用是查看文档。

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

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

添加完之后点击一下 sync project with Gradle file(按照Gradle文件同步引用库),作用是把Xposed "de.robv.android.xposed:api:82","de.robv.android.xposed:api:82:sources"用到的jar包同步project中

编写Xposed插件代码,新建一个java类

java类代码:

1 packagecom.example.myapplication;2

3

4 importde.robv.android.xposed.IXposedHookLoadPackage;5 importde.robv.android.xposed.XC_MethodHook;6 importde.robv.android.xposed.XposedBridge;7 importde.robv.android.xposed.XposedHelpers;8 importde.robv.android.xposed.callbacks.XC_LoadPackage;9

10 public class HookDemo implementsIXposedHookLoadPackage {11

12

13 @Override14 public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throwsThrowable {15

16

17 if (lpparam.packageName.equals("com.example.hookdemo"))18 {19 XposedBridge.log(" HOOK Test");20

21 Class clazz=lpparam.classLoader.loadClass("com.example.hookdemo.MainActivity");22

23 XposedHelpers.findAndHookMethod(clazz, "sRes", newXC_MethodHook() {24 @Override25 protected void afterHookedMethod(MethodHookParam param) throwsThrowable {26 super.afterHookedMethod(param);27

28 param.setResult("你已被劫持");29

30 }31 });32

33

34 }35

36 }37 }

在app/src/main 新建Assets Folder

创建xposed_init 文件

xposed_init内容如下:

com.example.myapplication.HookDemo

填写Xposed的入口类的完整类名。

配置到此结束 。

3。安装到真机/虚拟机

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值