【Android视频号② 搜索用户】

news2024/9/25 17:20:14

上一节我们已经拿到了视频号个人主页信息 但是发现传过来的用户名是一个以V2开头的数据 接下来我们就需要根据用户名去获取V2数据

DDMS问题

上一节根据ddms 可以很好的定位到视频号触发点
但是很多人会遇到一个问题就是 Monitor 使用

  • 如果打开报错 需要装Java1.8 版本太高了不行
  • 如果找不到进程名 需要使其 getprop ro.debuggable 查询为0 [Android修改ro.debuggable 的四种方法]
  • monitor 工具路径 一般在 C:\Users\admin\AppData\Local\Android\Sdk\tools\lib\monitor-x86

分析定位

当我们不知道哪个是执行函数的时候就可以找响应函数:onGYNetEnd (根据经验每个业务都会有这个响应函数)
在这里插入图片描述
然后根据ddms确定是哪个响应 写出frida 代码

Java.use("com.tencent.mm.plugin.websearch.a.ac");
C83728ac["onGYNetEnd"].implementation = function (i, i2, i3, str, interfaceC22814t, bArr) {
    console.log('onGYNetEnd is called' + ', ' + 'i: ' + i + ', ' + 'i2: ' + i2 + ', ' + 'i3: ' + i3 + ', ' + 'str: ' + str + ', ' + 'interfaceC22814t: ' + interfaceC22814t + ', ' + 'bArr: ' + bArr);
    let ret = this.onGYNetEnd(i, i2, i3, str, interfaceC22814t, bArr);
    console.log('onGYNetEnd ret value is ' + ret);
    return ret;
};

经过调试 每次搜索信息都会调用这里 所以我们可以根据他的构造函数 看看是哪里调用
不幸的是jadx 无法反编译出它的构造函数
在这里插入图片描述

不过没关系 只需要找到这个调用的构造函数方法就行了:手动查找引用 或者 动态的打印堆栈
跟踪可以发现它
是在一个线程里面去执行~(在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口)
在这里插入图片描述
往上看 可以看到视频号搜索 是通过线程池投递执行的 所以我们只需要构造C83787X这个类就可以执行了~
在这里插入图片描述
在这里插入图片描述
用gson 打印参数

  Java.openClassFile('/data/local/tmp/r0gson.dex').load()
  const gson = Java.use('com.r0ysue.gson.Gson')
  
  let C83797b = Java.use("com.tencent.mm.plugin.websearch.b$b");
C83797b["b"].implementation = function (c83787x) {
    console.log('b is called' + ', ' + 'c83787x: ' + gson.$new().toJson(c83787x));
    let ret = this.b(c83787x);
    console.log('b ret value is ' + ret);
    return ret;
};

可以看到很多参数 无关紧要的就先不构造 主要是 需要拿到用户名是哪个
在这里插入图片描述
完整调用代码如下:

   var query = '李白'
 // 执行额外参数构造函数 实例化对象
    let C83787x = Java.use('com.tencent.mm.plugin.websearch.a.x')
    var qeyObj = C83787x.$new()
    qeyObj.iEb.value = query
    qeyObj.offset.value = 0
    qeyObj.businessType.value = 33554434 // 0
    qeyObj.scene.value = 123
    qeyObj.amQm.value = ''
    qeyObj.amQo.value = 0
    qeyObj.amQn.value = ''
    qeyObj.amQy.value = ''
    // c83787x.amQk = C83867h.m24156a(map, "isHomePage", false) ? 1 : 0;
    qeyObj.amQk.value = 0
    qeyObj.GeQ.value = ''
    qeyObj.sessionId.value = '7805274457003576069'
    qeyObj.jbU.value = 1
    qeyObj.amQq = 2
    qeyObj.amQr.value = 0
    qeyObj.amQs.value = ''
    qeyObj.iUD.value = '359eeeea-44f5-42fd-9788-9e1b8f2094a2'
    qeyObj.jbQ.value = '7805274457003576069'
    qeyObj.amQz.value = ''
    qeyObj.amQC.value = false
    qeyObj.amQG.value = 0
    qeyObj.jbN.value = 180828080
    qeyObj.language.value = 'zh_CN'
    qeyObj.subtype.value = 0
    qeyObj.amQw.value = 0
    qeyObj.amQB.value = 0
    qeyObj.iEs.value = ''

    // 执行构造函数 实例化对象
    var FinderWebsearchClass = Java.use('com.tencent.mm.plugin.websearch.b')
    var myfinderwebsearch = FinderWebsearchClass.$new()
    log('初始化成功!!!!') 
    log('开始调用刷新请求.......')
    //刷新请求
    myfinderwebsearch.amOe.value.b(qeyObj)
    log('搜索完成!')

感觉这样分析起来还是蛮简单的~~
但是会有个问题就是构造参数没有原生的的完整 这样可能就会触发风控
如果想找其他hook点 还得往上找一下~ 就是只接受一个简单的入参 其他的让WeChat自己组参

好了接下来就是开始编写Xposed了 待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运维排查篇 | Linux 连接跟踪表满了怎么处理

nf_conntrack (在老版本的 Linux 内核中叫 ip_conntrack )是一个内核模块,用于跟踪一个网络连接的状态 一旦内核 netfilter 模块 conntrack 相关参数配置不合理,导致 nf_conntrack table full ,就会出现丢包、连接无法建立的问题 这个问题其…

电子技术——反馈放大器的分析方法总结

电子技术——反馈放大器的分析方法总结 第一种也是最简单的估算方法,直接拿出反馈网络,计算 β\betaβ 则假设在 AβA\betaAβ 无限大的情况下有 Af≃1/βA_f \simeq 1/\betaAf​≃1/β 。开环法。比第一种方法更能精确的估计 AAA 和 β\betaβ 的值。系…

js的异步方法:promise与定时器相遇,碰到的火花

前言: 我们在项目中长使用的异步方法 promise与定时器 在一起后,他们的顺序是什么样呢?这里来说一说。 案例1: console.log(异步打印顺序:);console.log(1);setTimeout(()>{console.log(2);},2000)setTim…

APP 兼容性测试是什么?10年阿里测试老鸟告诉你......

1、APP 兼容性测试认识 随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节。 APP 兼容性测试通常会考虑:操作系统、厂…

firefly开发板RK3588非默认外设使能(串口uart、IIC、adc等)设备树修改详细步骤

sdk获取和内核编译,参考上一篇博文:rk3588内核裁剪 一、相关文件 文件1: rk3588_repo_sdk_v1.0.2a/kernel/arch/arm64/boot/dts/rockchip/rk3588-firefly-itx-3588j.dtsi此文件是针对firefly的板级设备树文件。 文件2: rk3588…

C#底层库--MySQL数据库脚本构建类(自动构建insert、update)

系列文章 C#底层库–记录日志帮助类 本文链接:https://blog.csdn.net/youcheng_ge/article/details/124187709 C#底层库–MySQL数据库脚本构建器(推荐阅读) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129179…

华为云计算之远程复制

实验环境说明身份管理IP业务IP主设备192.168.43.50H2:192.168.43.55从设备192.168.43.100P2:192.168.43.105存储的管理端口为8088登录到存储设备查看是否导入License访问https://192.168.43.50:8088,登录到主设备在设置中查看是否有添加远程设…

【AI绘图学习笔记】生成函数

生成模型学习笔记 (文章中大部分内容从网上学习笔记中摘录,推荐阅读原文,吴恩达深度学习课程笔记暂时停更一段时间,学习AI绘图原理是为了搞定毕业设计,等忙完再回头把基础补完,推荐读物《深度学习》花书&a…

我劝你千万不要去做CSGO游戏搬砖项目

尽管童话姐姐本人做CSGO游戏搬砖都快三年了,带的搬砖学员也好几百人了。但今天还是要跟未入行或者还在考虑是否入行的朋友们敲个警钟。 随着做这个的人越来越多,网上关于这个项目的文章,视频,硬广、软广也越来越多。就拿我朋友圈发…

高精度工业检测利器,维视智造BT-12C080双远心镜头

T-12C080 双远心镜头BT-12 系列标准 C 接口双远心镜头,与 1/2″(对角线 8mm)及以下成像靶面工业相机完美搭配,其结构稳定、外观轻巧,大景深,适用于较大视场下的高精度工业检测场景。产品亮点更轻巧与1/2″&…

【Database-01】达梦数据库Docker版下载安装

1、前往达梦数据库官网下载 https://www.dameng.com/1.1、选择数据库 - 数据库产品系 1.2、选择 达梦数据库管理系统(DM8) 1.3、点击试用下载 1.4、注册达梦账户 1.5、选择DM8 Docker镜像 https://www.dameng.com/list_103.html1.6、或者使用以下网址也…

雷达、定位、跟踪等信号处理邻域SCI期刊整理及推荐

雷达邻域SCI期刊整理及推荐:题名、刊物信息、撰写特点、审稿周期及投稿难度总结 定位/跟踪邻域SCI期刊整理及推荐:题名、刊物信息、撰写特点、审稿周期及投稿难度总结 估计/滤波/融合等信号处理邻域SCI期刊整理及推荐:题名、刊物信息、撰写…

Python数据分析与应用 | 数据分析工具Pandas

Pandas的数据结构分析 Pandas中有两个主要的数据结构:Series和DataFrame。 Series,一维的数据结构DataFrame,二维的,表格型的数据结构Series Series是一个类似一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分构成。左边是索引(index)…

树莓派——智能家居第一步

辛辛苦苦配了成功让树莓派开始工作了,开始搞智能家居!大体思路:基于工厂模式,分模块来实现上图分为三部分:主控、外设、控制主控我采用的是树莓派的4b4G版本,外设包括四个区域的灯(我的和上图有…

【Python】特征衍生

特征衍生1. 单变量特征衍生1.1 数据重编码1.2 高阶多项式2. 双变量特征衍生2.1 四则运算2.2 多项式衍生2.2.1 导包 & 数据2.2.2 二阶衍生2.2.3 三阶衍生3. 交叉组合3.1 导包 & 数据3.2 生成衍生列和名称3.3 独热编码1. 单变量特征衍生 1.1 数据重编码 连续变量 标准化…

对程序员来说最重要的小事——整洁代码

文章目录为什么要写整洁代码命名名副其实做有意义的区分类名、方法名函数短小只做一件事注释注释类型好注释坏注释格式目的垂直格式横向格式团队规则总结为什么要写整洁代码 现在阅读这篇博客的你不论是刚入行的新人还是开发了很多年的老鸟一定碰到过"祖传代码"&…

【原创】java+swing+mysql户籍管理系统设计与实现

户籍管理系统感觉跟学生管理系统有些类似,一个是对学生进行信息的管理,一个是对社会人员进行信息管理,难度系数基本一样,今天我们就来介绍一下使用javaswing和mysql进行户籍管理系统的开发。 功能分析: 户籍管理&…

【java 8】方法引用与构造器引用

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

INT3断点和硬件断点

Ollydbg动态调试的时候需要打一些断点,断点分为INT3断点和硬件断点,本文是区分两个断点的文章。 目录 INT3断点 好处 坏处 硬件断点 原理 优点 缺点 INT3断点 OD中使用F2快捷键设置的断点就是INT3断点 打INT3断点的时候,断点处就会被…

Unity学习笔记--在Editor下实现一个有下拉菜单的文件路径记忆功能(保姆级教程)

目录前言需求分析知识前提一、下拉菜单的实现二、选取对应文件夹路径三、写入到.txt文件完整代码前言 最近需要在Unity编辑器下实现一个面板,有一个下拉菜单,其他人可以往这个下拉菜单里面添加一些文件夹路径,保证下次进来的时候能够直接通过…