Xpose_HOOK入门教程
开发工具:AndroidStudio maven VirtualXposed
一.新建Hook项目
二、配置HOOK环境
引入xposed
compileOnly 'de.robv.android.xposed:api:82'
compileOnly 'de.robv.android.xposed:api:82:sources'
下面来配置清单文件 (配置AndroidManifest.xml)
配置如下图
<!-- 应用为模块 --> <meta-dataandroid:name="xposedmodule"android:value="true" /> <!-- 版本信息 --> <meta-dataandroid:name="xposedminversion"android:value="53" /> <!-- 模块描述 --> <meta-dataandroid:name="xposeddescription"android:value="淘宝抓包" />
三.编写hook代码
创建HookMain类,实现IXposedHookLoadPackage这个接口
四 配置入口
创建assets目录
创建和配置xposet_init文件:包名+ 类名
源码如下:
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 HookMain implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {if(lpparam.packageName.contains("com.taobao")){ //抓包的包名//XposedUtil.checkXposed(lpparam);XposedHelpers.findAndHookMethod(XposedHelpers.findClassIfExists("mtopsdk.mtop.global.SwitchConfig", //抓包的类名lpparam.classLoader), "isGlobalSpdySwitchOpen",//抓包的方法名new XC_MethodHook() {protected void afterHookedMethod(MethodHookParam methodHookParam) throws Throwable {super.afterHookedMethod(methodHookParam);XposedBridge.log("--------开始抓包----------");methodHookParam.setResult(Boolean.valueOf(false));}});}}
}
之后将该插件和要抓包的APP安装到VirtualXposed,就可以HOOK到
补充:获取参数说明
XposedHelpers.findAndHookMethod(//要 hook 的类,很明显是 MainActivity"com.sddz.logint.MainActivity",//类加载器lpparam.classLoader,//要 hook 方法的名称"toastMessage",//参数类型String.class,//参数类型String.class,new XC_MethodHook() {//在方法运行之前 hook 可在运行之前改变参数的值从而影响运行结果,得不到返回值protected void beforeHookedMethod(MethodHookParam param) throws Throwable {}//在方法运行之后 hook 可以得到返回值 这里我们在运行之后就可以了 因为我们需要拿到返回值protected void afterHookedMethod(MethodHookParam param) throws Throwable {//参数 1 的值XposedBridge.log("whj userName:" + param.args[0]);//参数 2 的值XposedBridge.log("whj password:" + param.args[1]);//返回值XposedBridge.log("whj Login:" + param.getResult());param.setResult("你已被劫持");//修改值//获取私有属性 name 的值XposedBridge.log("whj name:" + XposedHelpers.getObjectField(param.thisObject, "name"));}});
Xpose_HOOK入门教程相关推荐
- Kafka入门教程与详解
1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...
- 【CV】Pytorch一小时入门教程-代码详解
目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...
- python tornado教程_Tornado 简单入门教程(零)——准备工作
前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...
- python向量计算库教程_NumPy库入门教程:基础知识总结
原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...
- mysql query browswer_MySQL数据库新特性之存储过程入门教程
MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...
- python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...
- air调用java,AIR2.0入门教程:与Java应用交互
在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...
- 【Arduino】开发入门教程【一】什么是Arduino
Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...
- python 三分钟入门_Cython 三分钟入门教程
作者:perrygeo 译者:赖勇浩(http://laiyonghao.com) 原文:http://www.perrygeo.net/wordpress/?p=116 我最喜欢的是Python,它 ...
- BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序
BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...
最新文章
- 面向对象入门2--继承
- HTTP访问一个网站的过程详解
- 如何捕获 EF 生成的 SQL 脚本?
- python的pandas库中如何计算每列出现最多的值_Python Pandas中根据列的值选取多行数据...
- oracle数据库如何写翻页_oracle数据库如何写翻页
- html 写字版插件,JS+HTML5 Canvas实现简单的写字板功能示例
- linux文件IO的操作
- 基姆拉尔森公式--判断星期几
- 吴军信息论40讲_刘润对谈吴军:每个人都一定要有数学思维
- pass平台java,mPass 微服务开发平台
- Java项目的命名规范
- LAMMPS学习总结1
- R语言的读取文件的相关学习(读取数据库,网页,EXCEL文件)
- Python股票量化交易(一)
- 广州物流展相关的个人总结
- 阿里云上云迁移工具案例实践:腾讯云迁移到阿里云
- 从小米智能家居入手,揭秘物联网关键技术​
- docker run 的 -i -t -d参数
- 今天我们谈谈关于java自学的那些事儿(为那些目标模糊的码农们)
- python可视化是什么意思_python3数据可视化是什么?
热门文章
- 微型计算机 介绍 gtx980m,卡皇GTX980M的横空出世_笔记本评测-中关村在线
- Shader Forge中文帮助手册
- 变电站计算机监控 规范,110kV变电站计算机监控系统技术规范书.docx
- 16Aspx.com源码2014年7月详细
- Mac系统安装Photoshop CS6教程
- 搜索引擎的基本工作原理
- apk破解(二) 简单修改一个so文件
- 虹科案例 | 移动运营商:使用手持式频谱仪进行干扰检测
- 如何成为优秀的技术主管-管理篇
- 计算机电气工程论文,计算机在电气工程自动化控制的作用