所需要环境 :
jdk sdk xposed激活安装
xposed激活安装 :https://blog.csdn.net/weixin_38927522/article/details/119832717

1.Android Studio 项目AndroidManifest.xml添加xml标识:

        <!-- 添加标识 --><meta-dataandroid:name="xposedmodule"android:value="true"/><!-- 载入Hook模块之后显示的信息 value可修改--><meta-dataandroid:name="xposeddescription"android:value="Xposed Proxy For HOOK"/><!-- 规定jar包的版本信息 --><meta-dataandroid:name="xposedminversion"android:value="54"/>

2. 引入jar包并添加依赖:

两个jar包,Bridge是实现,api-82是调用,调用无法查看源代码实现逻辑,故而会小一些,这两个用哪个都可以。

build.gradle下dependencies中引入:

compileOnly files('lib/api-82.jar')

全build.gradle文件如下:

apply plugin: 'com.android.application'android {compileSdkVersion 29defaultConfig {applicationId "com.sun.xposed"minSdkVersion 19targetSdkVersion 29versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {compileOnly files('lib/api-82.jar')implementation fileTree(dir: "libs", include: ["*.jar"])implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'}

3.创建hook类:

package com.sun.xposed;import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;public class XposedHook implements IXposedHookLoadPackage{@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {// 判断当前启动的目标程序是否是要hook的应用程序if(loadPackageParam.packageName.equals("cn.com.cvsource")){XposedBridge.log("编写Xposed插件模板,开启HOOK之路!");XposedHelpers.findAndHookMethod("cn.com.cvsource.utils.EncryptUtils", // 包名+类名loadPackageParam.classLoader,
//                    "encrypt",     // 要hook的方法名称"getApiSalt",     // 要hook的方法名称
//                    String.class, String.class,String.class, // 参数列表new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);// 打印参数信息// 获取第一个参数
//                            XposedBridge.log("String1:"+param.args[0]);
//                            // 获取第二个参数
//                            XposedBridge.log("String2:"+param.args[1]);
//                            XposedBridge.log("String3:"+param.args[2]);}// hook之后 可以打印返回值信息 修改返回值@Overrideprotected void afterHookedMethod(MethodHookParam param)throws Throwable {super.afterHookedMethod(param);// 打印方法返回值信息XposedBridge.log("result:"+param.getResult());// 修改方法返回值param.setResult(true);}});}}
}

4.在main下创建xposed入口:

​ 创建assets文件夹 并创建 xposed_init,写清入口类:com.sun.xposed.XposedHook。

5.运行及打包:

可通过build编译成apk,提供其他人使用。

指定目录下创建秘钥,并选择release完成编译。

6.总体结构

Xposed插件编写相关推荐

  1. 【Android视频号③ Xposed插件编写】

    这节 就是将frida代码翻译为Xposed 然后利用Sekiro服务进行接口调用 Xposed环境 我的测试环境是 LSPosed 它是完全兼容XP模块的 (免重启调试起来方便一点)下载后用Magi ...

  2. cocos2d编写android插件,[分享]Xposed插件dump Cocos2d-x应用的lua脚本

    入门示例,大佬轻拍. 没有找到预览,请忍受排版. 很多安卓游戏.应用使用Cocos2d-x和lua开发,并且lua脚本都是加密保存的,根本无法直接阅读. 今天我们基于Xposed开发一个插件,来dum ...

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

    前言:最近看了很多的Xposed的入门教程,根据的我的实践,写此教程,希望对新手有所帮助. 1.编写一个被Hook的App.代码 1 packagecom.example.hookdemo;2 3 i ...

  4. 安卓逆向——AS开发Xposed插件demo案例

    AS开发Xposed插件demo案例 环境和工具 : 模拟器:雷电 4.0.43版本 安卓版本:7.1.2  x86 Xposed :xposed-installer-3-1-5 安装好 androi ...

  5. Xpatch:免Root实现App加载Xposed插件的一种方法

    Xpatch概述 Xpatch用来重新签名打包Apk文件,使重打包后的Apk能加载安装在系统里的任意Xposed插件,从而实现免Root Hook任意App. 源码 github.com/WindyS ...

  6. 逆向android-让你也能开发微信的xposed插件-手机root(一)

    逆向android-让你也能开发微信的xposed插件 手机root 手机安装Magisk 开启root手机debugable功能,对所有应用进行断点调试 学习smail语言基本语法 通过断点调试,查 ...

  7. Gulp:插件编写入门

    之前挖了个坑,准备写篇gulp插件编写入门的科普文,之后迟迟没有动笔,因为不知道该肿么讲清楚Stream这货,毕竟,gulp插件的实现不像grunt插件的实现那么直观. 好吧,于是决定单刀直入了.文中 ...

  8. VS2010插件编写学习总结

    VS2010 Addins 外接程序(插件)开发 http://www.cnblogs.com/Leo_wl/archive/2013/03/21/2973886.html 简单做了一个添加文件头注视 ...

  9. [Linux实用工具]munin-node插件配置和插件编写

    前面介绍了2篇munin使用的相关文章: [Linux实用工具]Linux监控工具munin的安装和配置 [Linux实用工具]Linux监控工具munin的展示(Nginx) 这次介绍一下munin ...

最新文章

  1. Android Studio(IDEA)太占系统盘?帮你移动下
  2. C# 8.0 抢先看-- Async Stream
  3. vs2012中VC连接mysql
  4. mysql 查询分析器中使用if_查询分析器中开发代码测试检查_MySQL
  5. 学校老师绝对不会教的方法,让你的孩子拥有一个开挂般的人生!
  6. JQuery-Dialog(弹出窗口,遮蔽窗口)
  7. Exynos4412 Uboot 移植(五)—— Uboot 移植过程
  8. LeetCode450题—— 删除二叉搜索树中的节点
  9. 【leetcode困难】968. 监控二叉树
  10. 32位dll转64位工具_如何在64位系统中运行32位或16位程序
  11. 笔记︱利用python + flask制作一个简易本地restful API
  12. 8.84 亿什么概念?
  13. Could not read JSON: Cannot construct instance of `java.util.ArrayList$SubList`Redis反序列化异常
  14. Socket通讯之UDP
  15. c#连续打印问题,即进销存销售单打印问题完美解决
  16. Java实习日记(4)
  17. python实现12306车票查询
  18. 谭浩强版c语言笔记(1)
  19. mysql benchmark 测试工具_mysql benchmark基准测试
  20. 智慧发电厂+智能发电厂web端平台管理系统+Axure高保真智慧电厂系统+能耗管理+告警管理+生产监控+安防设备管理+运维设备管理+监控面板+系统管理+智慧电厂+电厂系统+智慧电厂管理平台+rp原型

热门文章

  1. Matlab P文件 p-code 破解解析
  2. 怎样运用云服务器搭建传奇世界联网手游教程,linux系统部署游戏详细教程
  3. 春天来了,又到了--------------万物复苏的季节
  4. 江苏理工学院计算机网络期末,江苏理工学院数据中心机房管理制度
  5. java 改变图片某个坐标点的颜色,并返回给前台显示
  6. MarkDown书写规范
  7. 多元统计分析-教师数据
  8. 机器学习中的F1-score
  9. guid linux 识别的分区表_GUID分区表(GPT)修复实战
  10. patronictl