开发工具: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入门教程相关推荐

  1. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  2. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  3. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  4. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  5. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  6. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  7. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  8. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

  9. python 三分钟入门_Cython 三分钟入门教程

    作者:perrygeo 译者:赖勇浩(http://laiyonghao.com) 原文:http://www.perrygeo.net/wordpress/?p=116 我最喜欢的是Python,它 ...

  10. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

最新文章

  1. 面向对象入门2--继承
  2. HTTP访问一个网站的过程详解
  3. 如何捕获 EF 生成的 SQL 脚本?
  4. python的pandas库中如何计算每列出现最多的值_Python Pandas中根据列的值选取多行数据...
  5. oracle数据库如何写翻页_oracle数据库如何写翻页
  6. html 写字版插件,JS+HTML5 Canvas实现简单的写字板功能示例
  7. linux文件IO的操作
  8. 基姆拉尔森公式--判断星期几
  9. 吴军信息论40讲_刘润对谈吴军:每个人都一定要有数学思维
  10. pass平台java,mPass 微服务开发平台
  11. Java项目的命名规范
  12. LAMMPS学习总结1
  13. R语言的读取文件的相关学习(读取数据库,网页,EXCEL文件)
  14. Python股票量化交易(一)
  15. 广州物流展相关的个人总结
  16. 阿里云上云迁移工具案例实践:腾讯云迁移到阿里云
  17. 从小米智能家居入手,揭秘物联网关键技术​
  18. docker run 的 -i -t -d参数
  19. 今天我们谈谈关于java自学的那些事儿(为那些目标模糊的码农们)
  20. python可视化是什么意思_python3数据可视化是什么?

热门文章

  1. 微型计算机 介绍 gtx980m,卡皇GTX980M的横空出世_笔记本评测-中关村在线
  2. Shader Forge中文帮助手册
  3. 变电站计算机监控 规范,110kV变电站计算机监控系统技术规范书.docx
  4. 16Aspx.com源码2014年7月详细
  5. Mac系统安装Photoshop CS6教程
  6. 搜索引擎的基本工作原理
  7. apk破解(二) 简单修改一个so文件
  8. 虹科案例 | 移动运营商:使用手持式频谱仪进行干扰检测
  9. 如何成为优秀的技术主管-管理篇
  10. 计算机电气工程论文,计算机在电气工程自动化控制的作用