先打一拳,打的时候再把问题问遍。

前言当我们在xposed进行反射调用的时候,很多时候被HOOK函数并不是static函数,但是我们在调用的时候需要传入该函数的类的实例,那实例我们怎么拿到呢,今天介绍几种办法拿到类的实例。情况一对于单例类,这个问题就变得简单了,我们只需要调用单例类的获取实例的函数,他会将实例返回,拿到后直接用就行。单例类长这样:如果你恰巧了解单例模式,那就很清楚了。我们先通过反射调用getInstance函数(该函数一定是static)拿到该类的实例,再通过拿到的实例进行该类的其他非static函数调用。情况二非单例函数,这种时候如果类的初始化参数并不复杂,比如仅有一个Context或其他简单的参数,我们通过模拟参数,自行初始化一个实例,供后续反射调用使用。不过用该方案是有一定风险的,对于业务比较复杂的类,很可能在实例化之后还要进行一些参数设置等操作,我们很容易遗漏,导致最终实例并不完全,后续反射调用出错。所以该方案只用在业务比较简单清晰的类,比如一些算法类。情况三对于上述不能解决的,我们都可以用该方案来解决。需要用到A类,那么该类一定已经被APP本身实例化过了,如果我们拿到这个实例,那肯定是正常可用的。这个时候我们还是需要借助HOOK来拿到这个实例,再将其用到反射调用中去。基本步骤是:(假定目标函数为A类的bb函数,但是bb函数是非static,A类也非单例类)

  1. HOOK A类的任意函数(包括bb函数,该函数会被触发即可)
  2. 再hook到的地方保存实例到全局map中(见下图,setInst是我自己定义的函数,用于保存这对kv到map)
  3. 需要使用该实例的地方从全局map中拿到实例正常执行反射调用B函数

看个例子:这样我们就实现了反射调用。需要注意的是,我们这样写,得保证在反射调用之前,已经拿到了hook到的实例,即业务正常触发到了这个HOOK,不然使用的这端拿不到实例,执行会报错的。(也就是,用之前,在APP上划拉几下)好了,有了以上三招,反射调用就不会愁拿不到实例的问题了。另外为了方便沟通和交流,我建了星球来分享知识和回答大家的问题。星球主要提供web端和移动端爬虫相关技术分享和问题解答,包括各平台各种协议抓包分析、js逆向、安卓逆向、iOS逆向、Windows逆向、协议还原仿真、各平台hook、大型分布式爬虫构建等。我们的愿景是“可见即可爬”。期待你加入哦。

安卓怎么调用系统的ui_安卓逆向 | 为了反射调用我们怎么能拿到被HOOK函数的实例...相关推荐

  1. android8版本怎么下载,华为安卓8.0系统正式版下载-华为安卓8.0系统体验版安卓版_飞翔下载...

    安卓8.0系统体验版是最近谷歌推出的安卓系统最新版本,主题是可爱的奥利奥超人哦,此次更新加强了手机的续航能力,以及改进蓝牙音频的一部分,加强对手机安全性的保证,想要抢先体验的小伙伴们赶紧来下载吧~记得 ...

  2. 鸿蒙撕系统裂安卓阵营,鸿蒙系统年底问世 安卓阵营是不是该瑟瑟发抖了

    西安兵马俑在线8月8日讯外媒称鸿蒙系统手机将问世,或针对低端市场!售价约2000 前段时间,华为鸿蒙系统引起了外界的强烈关注,当时外界纷纷都认为,鸿蒙系统是继安卓.iOS后的第三大手机操作系统,这也意 ...

  3. 基于安卓的考试系统_基于安卓11定制!华为最新手机系统曝光:体验堪比苹果iOS!...

    在最近的一场发布会上,华为正式宣布了自家的HMS和AppGallery服务,对标安卓Play商店和苹果Appstore商店,这一举措让华为再度登上风口浪尖.这种做法在业界人士眼里的目的只有一个,华为要 ...

  4. 安卓10修改系统ntp服务器,安卓修改ntp服务器地址

    安卓修改ntp服务器地址 内容精选 换一换 访问IIS搭建的网站不通,报错404.IIS上绑定的域名只填写了主机名,没有指定IP地址.本节操作指导用户修改IIS上绑定的域名,以Windows Serv ...

  5. android调用系统裁剪功能,Android图片剪裁之调用系统剪裁

    参考: 一. 原理 通过Intent打开系统自带的剪裁Activity,通过Intent设置Extra参数,进行剪裁参数的设定.剪裁结果的缩略图会保存在返回的data中,而大图要通过Uri进行保存(其 ...

  6. android 调用系统输入法,Android 1.6中文输入法调用

    本文详细讲解Android 1.6调用搜狗输入法和谷歌输入法 在安装完毕搜狗输入法后,并不能调用中文输入法,还需按照下面操作进行设置. Android模拟器-All按钮,找到settings 点击se ...

  7. android调用系统相机图片不旋转,Android 处理调用系统相机生成的被旋转图片

    主要通过获取EXIF信息进行设置: public static int readPictureDegree(String path) { int degree  = 0; try { ExifInte ...

  8. jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...

    本文是推荐使用过jsb.reflection的开发者进行阅读.关于jsb.reflection的说明请参照: 我们在代码编写过程中,通常会需要在js脚本中调用到java代码或者Objective-C的 ...

  9. 845透色android10,高通845芯片配合安卓9.0系统完美无瑕,苹果A11和iOS都要望尘莫及...

    要是安卓9.0和高通845一起配合怎么样是不是非常完美了,苹果IOS11配合苹果A11可能都要肉肉到底 目前已经有三星,华为,索尼,HTC,诺基亚等手机厂商集成了Project Treble模式,相信 ...

最新文章

  1. 排序算法之直接插入排序
  2. Vue.js 生产环境部署
  3. 图形处理(七)基于热传播的测地距离计算-Siggraph 2013
  4. javascript学习之对象基础
  5. (75)FPGA随机函数($random)
  6. dbeaver默认值怎么设置_电脑没声音怎么办,峰哥教你如何解决
  7. android内核读取file文件
  8. jquery 获取同级元素_如何在jQuery中获取元素的同级
  9. JavaWeb:(练习)十二、简单的学生管理系统
  10. springboot集成quartz
  11. 合理使用“搜索引擎和工具书”,提升“速度和加速度”
  12. 【二十六】redis之事务、事务特性、与pipeline比较,与Lua脚本比较
  13. stm32核心板可以点亮灯吗_不忘初心牢记使命——自动化科协自行设计开发stm32仿真器...
  14. ftp上传工具绿色版,五款ftp上传工具绿色版好用推荐
  15. Android MTU 值修改
  16. Word学习笔记:P6-文档封面、页眉、页脚设置
  17. 从mysql迁移数据到postgre
  18. 索引顺序查找(分块查找)
  19. 【AAAI 2021】多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures
  20. eclipse 下载和安装教程(初学者,2022最新版)

热门文章

  1. 网易再度回应裁员事件:详述8个月沟通过程,员工要求支付61万元赔偿
  2. 华为Mate 30系列或下血本采用双主摄方案:CMOS尺寸破纪录
  3. 连亏172亿,割肉卖楼,年收3700亿、闻名全球的巨头,败退中国!
  4. 优酷VIP被黑灰产恶意冒领出现BUG 用户疯抢一年VIP
  5. 上海查处一批涉“樱桃直播”传播淫秽物品牟利案女主播 已有14人获刑
  6. 巨人退场!索尼前CEO平井一夫正式退休 结束35年索尼生涯
  7. 腾讯最新手游《和平精英》上线 魅族李楠评论亮了
  8. 苹果官网再度开售iPhone SE:这是在为新品清库存了?
  9. 提效80%|一次【Jmeter】实践的接口自动化
  10. Android 性能优化:使用 Lint 优化代码、去除多余资源,减少APP的size