Xpose模块抓取函数功能学习笔记
Xposed框架是Android环境下的hook框架,今天仔细练习了一下,练习的目标是一个ctf app点击打开链接。
具体步骤如下:
1.下载并安装xposed框架,安装后如图所示:
点击模块可以查看到当前已经安装的xposed模块。
点击上图右边的复选框,激活该模块,重启安卓模拟器即可加载。重启安卓模拟器的办法有两个,一个是直接关闭模拟器并打开,另外一个是使用如下adb命令:
adb shell "stop;start"
当前我们的myhook apk还没有生成,所以暂时不用做。
2.打开adt开发环境,新建一个android项目:
点击下一次,按下图进行设置:
随后全部点下一步,直到完成。
在AndroidManifest.xml配置Xposed的基本信息。
主要部分代码如下:
<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><meta-dataandroid:name="xposedmodule"android:value="true" /><meta-dataandroid:name="xposeddescription"android:value="hookclick" /><meta-dataandroid:name="xposedminversion"android:value="54" /></application>
上面写的版本号是54,也就是我们用jar的版本号。这部分内容基本上不用修改。
在工程上按alt+enter,选择Add External JARs,导入XposedBridgeApi-54.jar,注意一定要这么导入,而不能直接把jar文件插入开发环境。
3、在assets目录下新建一个xposed_init文件。编辑内容为:包名+类名,这里我写的是com.example.hooktest.hookModule。注意这里面的包名要和前面AndroidManifest.xml里面的包名一致。
4、编写类代码
首先,在src下面创建一个名称为com.example.hooktest的包,在这个包下面创建一个名为hookModule的类,如下图所示:
在hookModule.class中加入如下代码:
package com.example.hooktest;
import android.os.Bundle;
import android.util.Log;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;public class hookModule implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {// TODO Auto-generated method stubif (lpparam.packageName.equals("mirage.goldsnow.mctf")) {XposedHelpers.findAndHookMethod("mirage.goldsnow.mctf.MainActivity",lpparam.classLoader,"onCreate",Bundle.class,new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {String flag = (String)XposedHelpers.callMethod(param.thisObject, "getFlag");Log.d("xx", "the flag is=" + flag);}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {}});}}}
上面代码中的红色部分是要注意的关键点。下面逐一解释:
第一个
mirage.goldsnow.mctf
指的是目标apk的包名。
第二个
mirage.goldsnow.mctf.MainActivity
指的是activity名。
第三个
onCreate
指的是要拦截的存放flag的初始化函数。
第四个
getFlag
指的是读取flag字符串的函数。
Log.d("xx", "the flag is=" + flag);
这实际上是一个android调试类,更详细的说明可以参考 《Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法》这篇文章。
5、生成apk并安装。安装后,需要在xposed框架中激活,并重启模拟器,具体的操作方法见上面的第1部分。
6、在xposed中软重启,如下图:
重启后安装上面的目标ctf文件,并运行,用下面的命令即可查看ctf值。
adb shell "logcat | grep the flag"
Xpose模块抓取函数功能学习笔记相关推荐
- 利用python抓取搜狗指数学习笔记
1.搜狗指数 强调下:搜狗指数抓取真的很简单.很简单.很简单,大家一定不要被吓到,哈哈哈哈. 搜狗指数是一个指数指标,能够反应出来每天人们搜索的趋向,每天都有搜索变化表以及随机搜索内容. 本来打算爬取 ...
- Matlab函数功能学习记录(1)
初学乍练之作 优秀的Matlab讲解: 博客园 Matlab - 基础知识 csdn matlab库函数大全 my Matlab函数功能学习记录(2) Matlab特殊字符.命令和函数 Matlab实 ...
- python玩王者荣耀皮肤碎片怎么获得_用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例...
本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: ...
- R语言与函数估计学习笔记(函数模型的参数估计)
R语言与函数估计学习笔记 毫无疑问,函数估计是一个比参数估计要复杂得多的问题,当然也是一个有趣的多的问题.这个问题在模型未知的实验设计的建模中十分的常见,也是我正在学习的内容的一部分. 关于函数估计我 ...
- ES6基础(var let const 箭头函数)-学习笔记
文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...
- python爬虫之使用BeautifulSoup模块抓取500彩票网竞彩足球赛果及赔率
目录 前言 分析思路 数据储存 代码 结果展示 结语 前言 竞彩足球是目前比较受欢迎的一种体彩彩种,玩法较为灵活多样,赔率可观,今天就来记录一下如何抓取竞彩足球的开奖信息和赔率. 分析思路 我使用的网 ...
- 达芬奇PRO板的FPGA功能学习笔记(一)
达芬奇PRO板的FPGA功能学习笔记(一) 从编译到实现需要五个步骤: 1.写代码(verilog语言) 2.综合分析 3.写约束文件 约束文件主要是定义接口,命令第一个关键字代表命令的名称,其后的每 ...
- android eclipse debug coredump,Android P 开启抓取Coredump功能
默认情况下,Android的core dump size是被设置为0的,所以在进程crash时不会生成coredump.为了抓取coredump,需要开启该功能.下面介绍开启方法. 1.修改Zygot ...
- python爬虫urllib2模块的基本使用(学习笔记一)
urllib2库的介绍 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urllib2. urllib2 是 Pyt ...
- Python使用lxml模块和Requests模块抓取HTML页面的教程
Web抓取 Web站点使用HTML描述,这意味着每个web页面是一个结构化的文档.有时从中 获取数据同时保持它的结构是有用的.web站点不总是以容易处理的格式, 如 csv 或者 json 提供它们的 ...
最新文章
- 在公司的微服务上搞破坏真是太开心了
- 多线程与高并发(五):强软弱虚四种引用以及ThreadLocal的原理与源码
- jedis常用API
- php网站xml链接,xml图像超链接的制作代码
- VS Code 黑宝书背后的故事
- 规范白盒生态 S³IP助力未来可预期服务网络
- 【Elasticsearch】es 报错 no such index index_not_found_exception
- LDA算法原理及matlab实现
- springboot+Vue+Elementui医院网上预约挂号系统java项目
- Spark On Yarn --jars/spark.yarn.jars 踩坑 与 提升spark submit速度
- Boyd 凸优化课后习题 求共轭函数
- Docker基础认识与docker安装以及环境配置
- 瑞典皇工学院计算机,瑞典规模最大的理工院校,皇家理工学院
- 小心信用卡公司10个抢钱陷阱
- 共阳极数码管三极管驱动
- 百度地图4 从0开始
- 手机号码合法性 java_Java正则表达式——验证手机号码符合性
- javaScript模板字符串、严格模式、编码字节长度
- IDEA控制台和日志中文乱码
- 60多万的重疾险保额,也不敢去更好的医院看病