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模块抓取函数功能学习笔记相关推荐

  1. 利用python抓取搜狗指数学习笔记

    1.搜狗指数 强调下:搜狗指数抓取真的很简单.很简单.很简单,大家一定不要被吓到,哈哈哈哈. 搜狗指数是一个指数指标,能够反应出来每天人们搜索的趋向,每天都有搜索变化表以及随机搜索内容. 本来打算爬取 ...

  2. Matlab函数功能学习记录(1)

    初学乍练之作 优秀的Matlab讲解: 博客园 Matlab - 基础知识 csdn matlab库函数大全 my Matlab函数功能学习记录(2) Matlab特殊字符.命令和函数 Matlab实 ...

  3. python玩王者荣耀皮肤碎片怎么获得_用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例...

    本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: ...

  4. R语言与函数估计学习笔记(函数模型的参数估计)

    R语言与函数估计学习笔记 毫无疑问,函数估计是一个比参数估计要复杂得多的问题,当然也是一个有趣的多的问题.这个问题在模型未知的实验设计的建模中十分的常见,也是我正在学习的内容的一部分. 关于函数估计我 ...

  5. ES6基础(var let const 箭头函数)-学习笔记

    文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...

  6. python爬虫之使用BeautifulSoup模块抓取500彩票网竞彩足球赛果及赔率

    目录 前言 分析思路 数据储存 代码 结果展示 结语 前言 竞彩足球是目前比较受欢迎的一种体彩彩种,玩法较为灵活多样,赔率可观,今天就来记录一下如何抓取竞彩足球的开奖信息和赔率. 分析思路 我使用的网 ...

  7. 达芬奇PRO板的FPGA功能学习笔记(一)

    达芬奇PRO板的FPGA功能学习笔记(一) 从编译到实现需要五个步骤: 1.写代码(verilog语言) 2.综合分析 3.写约束文件 约束文件主要是定义接口,命令第一个关键字代表命令的名称,其后的每 ...

  8. android eclipse debug coredump,Android P 开启抓取Coredump功能

    默认情况下,Android的core dump size是被设置为0的,所以在进程crash时不会生成coredump.为了抓取coredump,需要开启该功能.下面介绍开启方法. 1.修改Zygot ...

  9. python爬虫urllib2模块的基本使用(学习笔记一)

    urllib2库的介绍 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urllib2. urllib2 是 Pyt ...

  10. Python使用lxml模块和Requests模块抓取HTML页面的教程

    Web抓取 Web站点使用HTML描述,这意味着每个web页面是一个结构化的文档.有时从中 获取数据同时保持它的结构是有用的.web站点不总是以容易处理的格式, 如 csv 或者 json 提供它们的 ...

最新文章

  1. 在公司的微服务上搞破坏真是太开心了
  2. 多线程与高并发(五):强软弱虚四种引用以及ThreadLocal的原理与源码
  3. jedis常用API
  4. php网站xml链接,xml图像超链接的制作代码
  5. VS Code 黑宝书背后的故事
  6. 规范白盒生态 S³IP助力未来可预期服务网络
  7. 【Elasticsearch】es 报错 no such index index_not_found_exception
  8. LDA算法原理及matlab实现
  9. springboot+Vue+Elementui医院网上预约挂号系统java项目
  10. Spark On Yarn --jars/spark.yarn.jars 踩坑 与 提升spark submit速度
  11. Boyd 凸优化课后习题 求共轭函数
  12. Docker基础认识与docker安装以及环境配置
  13. 瑞典皇工学院计算机,瑞典规模最大的理工院校,皇家理工学院
  14. 小心信用卡公司10个抢钱陷阱
  15. 共阳极数码管三极管驱动
  16. 百度地图4 从0开始
  17. 手机号码合法性 java_Java正则表达式——验证手机号码符合性
  18. javaScript模板字符串、严格模式、编码字节长度
  19. IDEA控制台和日志中文乱码
  20. 60多万的重疾险保额,也不敢去更好的医院看病

热门文章

  1. 天猫电视盒子服务器响应错误,电视盒子错误的使用方法,你中招了几条?
  2. 视觉尺寸测量设备系统
  3. 20211111C++练习总结
  4. Ruby 开发环境搭建
  5. u盘中毒文件为html文档,U盘中毒后文件夹被隐藏的恢复方法
  6. 小马哥linux网络培训,linux基础入门
  7. 分享国外安全团队及工具
  8. 一款好看流光风格个人主页HTML源码
  9. JS--JavaScript数值计算与类型转换详解
  10. 基于专利多属性融合的技术主题划分方法研究